好文档 - 专业文书写作范文服务资料分享网站

Java面向对象编程-配套教学用试题库

天下 分享 时间: 加入收藏 我要投稿 点赞

.println(\ } }

(A)运行时打印“method1”。

(B)编译时出错:Sub类必须为抽象类。 (C)运行时出错:Sub类不能被实例化。

(D)编译时出错:main()方法中的变量a必须声明为Sub类型。

答案: B 解答:

Sub类没有实现Base父类中的所有抽象方法,因此Sub类必须声明为抽象类。 27. 运行以下程序代码,会打印什么结果?

public class Sample {

public static void main(String args[]) {

StringBuffer a = new StringBuffer(\ StringBuffer b = new StringBuffer(\ swap(a,b);

.println(\ }

static void swap (StringBuffer a, StringBuffer b) { a.append(\ b=a; } }

(A) a is One b is Two (B)

a is One b is One (C)

a is One more b is One more (D)

a is One more b is Two

答案: D 解答:

swap()方法的参数a与main()方法中的变量a都引用同一个StringBuffer对象,swap()方法的a.append(\会修改参数a引用的StringBuffer对象的内容。

28. 以下代码能否通过编译,如果能通过编译,运行时得到什么打印结果?

01: int output=20; 02: boolean b1 = false;

03: if((b1==true) && ((output+=10)==30)){ 04: .println(\ 05: }else{

06: .println(\ 07: }

(A)编译时出错:第3行的逻辑表达式语法不正确。 (B)运行时打印“We are equal 30”。 (C)运行时打印“Not equal! 20”。 (D)以上选项都不正确。

答案: C 解答:

“&&”为短路逻辑与操作符。表达式“b1==true”的值为false,可以得出整个if条件表达式的值为false,因此表达式“(output+=10)==30”不会被执行,output变量的值仍为20。 29. 在一个Frame容器中加入了一个Button,当Frame的大小发生变化, Button的大小保

持不变。Frame采用了什么布局管理器? (A) FlowLayout (B) GridLayout (C) BorderLayout (D) CardLayout

答案: A 解答:

FlowLayout布局管理器会使得加入到容器中的组件始终保持最佳大小。当容器的大小发生变化, 组件的大小保持不变。 30. 封装的主要特点是什么?

(A) 对象的所有方法都是public类型的。 (B) 对象的所有方法都不会抛出异常。

(C) 当对象的内部实现细节发生变化,只要接口不变,就不会影响使用者的程序代码。

(D) 当对象的接口发生变化,只要内部实现细节不变,就不会影响使用者的程序代码。

答案: C 解答:

封装主要指对象封装实现细节,仅仅对外公开接口。当对象的实现细节发生变化,只要接口不变,就不会影响使用者的程序代码。

31. 以下哪个集合不允许存放重复的Java对象? (A) Map (B) List (C) Set

(D) Collection

答案: C 解答:

.Set中不允许存放重复的Java对象。 32. 关于非静态内部类,以下哪个说法正确?

(A) 它必须实现一个接口。

(B) 它可以访问外部类的private类型的实例变量。 (C) 只有它的外部类才能创建它的实例。

(D) 如果它位于一个方法中,必须声明为final类型。

答案: B 解答:

非静态内部类可以直接访问外部类的private类型的实例变量。 33. String类是在哪个包中定义的? (A) (B) (C) (D)

答案: B 解答:

String类在包中定义。

34. 对于以下程序代码,运行时得到什么打印结果?

public class Sample{ private void test() { int i = 1; switch (i) { case 0:

.println(\ break; case 1:

.println(\ case 2:

.println(\ default:

.println(\ }

}

public static void main(String[] args){ new Sample().test(); } }

(A) one

(B) one, default (C) one, two, default (D) default

答案: C 解答:

以上switch表达式与case1表达式匹配,就从这个case1子句开始执行,由于没有遇到break语句,就依次执行switch语句中后续的case子句和default子句。 35. 对于“switch(a)”表达式中的变量a,它可以被声明为哪些合法数据类型?

(A) boolean, byte, char, short, int, long (B) boolean, byte, char, short, int (C) byte, char, short, int

(D) boolean, byte, char, short, int, long, float, double

答案: C 解答:

在“switch(a)”表达式中,变量a的类型必须是与int类型兼容的基本类型,所谓与int类型兼容,就是指能自动转换为int类型。因此变量a的合法类型包括:byte、char、short和int类型。

36. 以下程序代码能否通过编译,如果通过编译,运行“java Sample”时会出现什么情况?

public class Sample{ boolean b;

private void test() { if(b=true)

.println(\ else

.println(\ }

public static void main(String[] args){ new Sample().test(); } }

(A) 运行时打印“b is true”。 (B) 运行时打印“b is false”。 (C) 运行时抛出异常。 (D) 编译时出错。

答案: A 解答:

对于“if(b=true)”条件表达式,操作符“=”把变量b赋值为true,因此整个if条件表达式的值也是true。

37. 以下程序代码的第3行用new语句创建了一个字符串对象“Hello”,执行完哪一行,这

个“Hello”对象变成无用对象,可以被垃圾回收器回收?

01: public class Sample{ 02: private void test() {

03: String anObj =new String(\04: ();

05: anObj = erCase(); 06: anObj = null; 07: } 08:

09: public static void main(String[] args) { 20: new Sample().test(); 21: } 22: 23: }

(A)第4行 (B)第5行 (C)第6行 (D)第7行

答案: B 解答:

String类的toUpperCase()方法返回一个新的String对象,因此执行完第5行后,anObj变量引用一个新的String对象,原先的“Hello”对象不再被任何变量引用,它变为无用对象。

38. 以下程序代码的第4行用new语句创建了一个字符串对象“Hello”,执行完哪一行,这

个“Hello”对象变成无用对象,可以被垃圾回收器回收?

01: public class Sample{ 02:

03: private void test() {

04: String obj1 =new String(\05: String obj2 = obj1; 06: ();

07: obj1 = null; 08: (); 09: } 10:

11: public static void main(String[] args) { 12: new Sample().test(); 13: } 14: }

Java面向对象编程-配套教学用试题库

.println(\}}(A)运行时打印“method1”。(B)编译时出错:Sub类必须为抽象类。(C)运行时出错:Sub类不能被实例化。(D)编译时出错:main()方法中的变量a必须声明为Sub类型。答案:B解答:Sub类没有实现Base父类中的所有抽象方法,因此Sub类必须
推荐度:
点击下载文档文档为doc格式
43kmt8b3ga5ap1c1kzfj507xn0uyq600qh1
领取福利

微信扫码领取福利

微信扫码分享