3 类和对象
3.2 类的基本架构介绍
下列哪个类声明是正确的?
A. abstract final class H1{}
B. abstract private move(){}
C. protected private number;
D. public abstract class Car{}
解决方案
D
以下选项符合对象和类的关系的是:
A. 人和老虎
B. 书和汽车
C. 父亲和儿子
D. 汽车和交通工具
解决方案
D
下面关于java中类的说法哪个是不正确的?
A. 类体中只能有变量定义、常量定义和成员方法的定义,不能包含“x=3;”这样的语句。
B. 构造函数是类中的特殊方法
C. 主类一定要声明为public。
D. 一个java文件中可以有多个class定义。
解决方案
C
下面哪个单词是Java语言的关键字?
A. Float
B. this
C. string
D. unsigned
解决方案
B
下列哪项是Java编程所必须的默认引用包?
A. java.sys包
B. java.lang包
C. java.net包
D. 以上都不是
解决方案
B
以下哪个是Java的关键字?
A. NULL
B. new
C. instanceOf
D. wend
解决方案
B
下面哪个是Java语言中正确的标识符?
A. 3com
B. import
C. that
D. this
解决方案
C
数组中可以包含什么类型的元素?
A. int型
B. String型
C. 数组
D. 以上都可以
解决方案
D
在Java中函数main()的返回值是:
A. String
B. int
C. char
D. void
解决方案
D
Java应用在消费电子市场上开发平台名称为:
A. JDK
B. J2ME
C. J2SE
D. J2EE
解决方案
B
3.4 使用对象
构造方法何时被调用?
A. 类定义时
B. 创建对象时
C. 调用对象方法时
D. 使用对象的变量时
解决方案
B
在编写Java Application程序时,若需要使用到标准输入输出语句,必须在程序的开头写上以下哪条语句?
A. import java.awt.*;
B. import java.applet.Applet;
C. import java.io.*;
D. import java.awt.Graphis;
解决方案
C
认真阅读代码,选择正确的选项
1 2 3 4 5 6 7 8 9 | public class MyClass { public static void main(String arguments[]) { amethod(arguments); } public void amethod(String[] arguments) { System.out.println(arguments); } } |
B. 这段代码是错误的,amethod方法中的字符串数组尚未初始化
C. 这段代码是错误的,main方法不能调用实例方法
D. 这段代码是正确的
解决方案
C
在Java中,一个类可以同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为:
A. 隐藏
B. 覆盖
C. 重载
D. Java不支持此特性
解决方案
C
下面关于构造函数的说法不正确的是:
A. 构造函数也属于类的方法,用于创建对象的时候给成员变量赋值。
B. 构造函数不可以重载。
C. 构造函数没有返回值。
D. 构造函数一定要和类名相同
解决方案
B
命令javac -verbose中选项的作用是:
A. 显示JVM加载class的过程
B. 显示JVM的版本
C. 显示JVM调用内存的情况
D. 显示JVM的错误跟踪过程
解决方案
A
给出类的定义如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 | class Test{ void test(int i){ System.out.println("I am an int."); } void test(String s){ System.out.println("I am a string."); } public static void main(String args[]) { Test t=new Test(); char ch='y'; t.test(ch); } } |
下列哪个选项正确?
A. 程序将不会编译,因为空的方法不能被覆盖。
B. 命令行t.test(ch); 将不会编译,因为没有对应的方法。
C. 代码将编译并输出以下结果: I am an int.
D. 代码将编译并输出以下结果: I am a string.
解决方案
C
编译及运行以下代码,下列选项哪个是正确的?
1 2 3 4 5 6 7 8 9 10 11 | public class Sandys{ private int court; public static void main(String argv[]){ Sandys s = new Sandys(99); System.out.println(s.court); } Sandys(int ballcount){ court=ballcount; } } |
B. 编译错误:s is not initialized when the System.out method is called
C. 编译通过,没有输出
D. 编译通过,输出99
解决方案
D
编译Java Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为
A. .java
B. .class
C. .html
D. .exe
解决方案
B
3.6 类方法/参数传递
关于static修饰符,以下哪个选项是正确的?
A. 被static修饰符修饰的成员变量不能被修改。
B. 在方法中创建的static变量,每次方法调用中对它的值做的修改都不能保留下来。
C. 一个类的所有类对象共享这个类的static变量。
D. static修饰符只能用于修饰基本类型变量。
解决方案
C
以下对方法内的变量描述正确的是:
A. 一定在方法内所有位置可见
B. 可能在方法内局部可见
C. 可以在方法外可见
D. 方法外也可用
解决方案
B
给出如下代码:
1 2 3 4 5 6 7 | class Test{ private int m; public static void fun() { // some code... } } |
如何使成员变量m被函数fun()直接访问?
A. 将private int m 改为 protected int m
B. 将private int m 改为 public int m
C. 将private int m 改为 static int m
D. 将private int m 改为 int m
解决方案
C
类JOptionPane提供了几个产生标准对话框的方法,它们能够给用户提供有用的信息,其中包括:
A. closeDialog()
B. openDialog()
C. showInputDialog()
D. outputDialog()
解决方案
C
运行下列程序,会产生什么结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | import java.io.*; public class Outer1{ private int a; void foo(double d,final float f){ String s; final boolean b; class Inner{ void methodInner(){ System.out.println("in the Inner"); } } } public static void main(String args[]) { Outer1 me=new Outer1(); me.foo(123,123); System.out.println("outer"); } } |
B. outer
C. in the Inner
D. 编译不通过
解决方案
B
编译及运行以下代码,下列选项哪个是正确的?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public class Ref{ public static void main(String argv[]){ Ref r = new Ref(); r.amethod(r); } public void amethod(Ref r){ int i=99; multi(r); System.out.println(i); } public void multi(Ref r){ r.i = r.i*2; } } |
B. 输出99
C. 输出198
D. 运行时出错
解决方案
A
3.8 访问权限
this关键字指的是?
A. 当前对象指针
B. 当前类的实例对象
C. 当前对象引用
D. 当前类的方法
解决方案
B
如果类中的成员变量仅仅可以被同一包中其他类访问,则使用如下哪个约束符?
A. private
B. public
C. protected
D. no modifier
解决方案
D
如果任何包中的子类都能访问超类中的成员,那么超类中的成员使用哪个限定词最好?
A. public
B. private
C. protected
D. transient
解决方案
C
不允许作为类及类成员的访问控制符的是:
A. public
B. private
C. static
D. protected
解决方案
C
下面哪个修饰符修饰的方法只能被本类中的其他方法使用
A. protected
B. static
C. private
D. public
解决方案
C
某个类的成员变量可以被同一个包中的子类访问,但不能被另一个包中的类(含子类)访问,该如何定义?
A. 变量应该用public做修饰。
B. 变量应该用private做修饰。
C. 变量应该用protected做修饰。
D. 变量不需做任何修饰。
解决方案
D
关于被私有访问控制符private修饰的成员变量,以下说法正确的是:
A. 可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类
B. 可以被两种类访问和引用:该类本身、该类的所有子类
C. 只能被该类自身所访问和修改
D. 只能被同一个包中的类访问
解决方案
C
3.9 内部类简介
考虑类A:
1 2 3 4 5 6 | public class A{ public int x=1; public void increaseBy(int n){ x=x+n; } } |
以下哪个选项程序代码段不会输出4?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | A. A a = new A(); a.x = 3 + a.x; System.out.print(a.x); B. A a = new A(); a.increaseBy(2); a.increaseBy(1); System.out.print(a.x); C. A a = new A(){ public void increaseBy (int n) { super.increaseBy(n); } }; a.increaseBy(4); System.out.print(a.x); D. A a = new A(); a.increaseBy(3); System.out.print(a.x); |
解决方案
C
3.10 包的应用
以下哪几段代码可以成功编译?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 1) import java.awt.*; package Mypackage; class Myclass {} 2) package MyPackage; import java.awt.*; class MyClass{} 3) /*This is a comment */ package MyPackage; import java.awt.*; class MyClass{} |
B. 2)和3)
C. 1)和3)
D. 1)、2)和3)
解决方案
B
创建一个名为MyPackage包的语句正确的是:
A. import MyPackage ;
B. import package MyPackage ;
C. package MyPackage ;
D. package import MyPackage ;
解决方案
C