Java习题_面向对象程序设计基础
- 格式:doc
- 大小:738.00 KB
- 文档页数:30
第 3 章 面向对象程序设计
一、判断题
1. ( )下面程序输出数字0。
2. ( )Java语言为所有的Java程序自动导入包“ng”,因此Java程序可以直接用“ng”中的类和接口。位于类继承关系层次结构树的根部的类Object就是在包“ng”中的一个类。
3. ( )有时候为了避免引起混淆,构造方法的方法名可以不与所属类名同名。
4. ( )构造方法一般不允许有任何返回值,因此需要在返回类型处标注为void。
5. ( )任何类都必须显示地定义该类的构造方法,以便对类的成员进行各种初始化操作。
6. ( )运行下面程序将在控制台窗口中输出a。
7. ( )下面的程序将输出“Creating Rock 2”。
8. ( )Java语言对内存的释放是采用垃圾自动回收机制。Java虚拟机自动判断并收集“垃圾”,但一般不会立即释放它们的存储空间。
9. ( )Java系统提供了方法“”来强制立即回收“垃圾”,即当调用该方法时,系统会立即回收“垃圾”。
10. ( )程序可以借助于finalize方法来精确记录在程序执行过程中内存资源的释放情况。
11. ( )如果在定义一个类的时候没有用到关键字extends,则这个类没有直接父类。
12. ( )Java语言规定:任何一类的构造方法必须调用其父类的构造方法(包括隐式调用),并且调用父类构造方法的语句必须是子类构造方法的第一条语句。
13. ( )在同一类中,不允许存在具有相同方法名和相同参数类型列表的方法,即使该方法的返回类型不相同。
14. ( )如果一个类不是内部类,则它的访问属性不能是private或者protected。
15. ( )抽象方法不能含有方法体,并且必须在抽象类中。
16. ( )抽象类是不能实例化的。抽象类的实例化,应当通过其不具有抽象属性的子类来创建。
17. ( )下面的程序输出整数3。
18. ( )设在一个java包.tsinghua.kit中含源程序文件J_Data.java,其内容如下:
在另一个包中含有源程序J_Test.java,其内容如下:
假设类路径设置及源程序文件所在的路径都是正确的,则上面的程序可以正常进行编译与运行,最终可以输出3。 二、填空题
1. 面向对象的计算机语言一般应有3个基本特征,分别是_________________、___________________和___________________。
2. 在下面的源代码中,类J_Example的域是__________,构造方法是_____________,当该类的实例对象在被释放之前可能被系统自动调用的方法是___________。
3. 在下面程序编译后,按“”方式运行的结果是:__________。
4. 运行下面程序会输出______________。
5. 运行下面程序,将会输出__________________。
6. 语句“”定义了变量a,想释放变量a所指向的实例对象的内存空间,请写出相应的一条或多条语句:___________________。
7. 在源程序的下划线处填上相应的语句,完成该程序,并判断该程序的最终输出结果是__________________。
8. 下面程序的输出结果是________________。
9. 下面程序的输出是________________。
10. 下面程序的输出结果是__________________________。
11. 下面程序的输出结果是________________。
三、选择题
1. 关于下面代码,结论正确的是( )。
(A)类的构造方法具有public属性;
(B)类的构造方法不含参数;
(C)类的构造方法包括调用this();
(D)类的构造方法包括调用super();
2. 在下列的类定义中,可以通过“”生成实例的是( )。
(A)
(B)
(C)
(D)
3. 关于下面程序,结论正确的是( )。
(A)程序可以通过编译并正常运行,结果输出“21”
(B)程序可以通过编译并正常运行,结果输出“221”
(C)程序无法通过编译
(D)程序可以通过编译,但无法正常运行
4. 关于下面的程序,结论正确的是( )。
(A)程序可以通过编译并正常运行,结果输出“5”
(B)程序可以通过编译并正常运行,结果输出“23”
(C)程序无法通过编译
(D)程序可以通过编译,但无法正常运行
5. 关于下面的程序,结论正确的是( )。
(A)程序可以通过编译并正常运行,结果输出“123”
(B)程序可以通过编译并正常运行,结果输出“13”
(C)程序可以通过编译并正常运行,结果输出“213”
(D)程序无法通过编译
6. 关于下面程序代码,结论正确的是( )。
(A)程序无法通过编译,因为Exer3_3_6没有定义无参数的构造方法
(B)程序无法通过编译,因为J_SubClass没有定义构造方法
(C)程序无法通过编译,因为没有实现J_SubClass(int i)构造方法
(D)程序可以通过编译
7. 下面程序的输出是________________。
(A)3null (B)3constructor (C)2constructor(4)2null
8. 下面程序的输出是________________。
(A)3null (B)3constructor (C)2constructor(D)2null
9. 关于java的垃圾回收机制,下面结论正确的是( )。
(A)程序可以任意指定释放内存的时间
(B)正确的程序写法是不能依赖于垃圾回收的时间或顺序
(C)程序可以明确地标识某个局部变量的引用不再被使用
(D)程序可以显式地立即释放对象所占有的内存
10. 在下面程序代码中,为使实例引用a能访问(调用)到类J_Base的成员方法,划线处应填入( )。
(A)
(B)
(C)
(D)以上都不对
11. 关于下面的程序代码,结论正确的是( )。
(A)运行上面的程序,结果输出“data =3”
(B)上面程序含有编译错误
(C)在运行上面程序时,第11行的语句会抛出一个异常
(D)在运行上面程序时,第12行的语句会抛出一个异常
12. 关于下面程序代码(在同一个文件中),结论正确的是( )。
(A)无法通过编译,因为语句有错误
(B)可以通过编译,但在运行时将报错
(C)可以通过编译,也可以正常运行
(D)无法通过编译,因为在同一个文件中类的个数太多
13. 关于下面的程序代码,结论正确的是( )。
(A)无法通过编译,因为语句中有错误
(B)可以通过编译,但在运行时将出错
(C)可以通过编译,也可以正常运行
(D)无法通过编译,因为同一个文件中类的个数太多
14. 为使下面程序输出“Sub”,应在下划线处填入的语句是( )。
(A) (B)
(C)
(D)
15. 为使程序输出“Sub”,应在下划线位置填的语句是( )。
(A)
(B)
(C)
(D)
16. 为使程序输出“Sub”,应在下划线填入的语句是( )。
(A)
(B)
(C)
(D)
17. 下面程序的输出结果是__________________。
(A)22 (B)55 (C)25 (D)52
18. 如果将其语法定义填入下列代码第9行,会使以下代码编译错误的是( )。
(A)
(B)
(C)
(D)
19. 已知字母和字母所对应的数值分别是97和98,关于下面程序代码,结论正确的是( )。
(A)程序可以通过编译并正常运行,结果输出“Name: a; Age:98”
(B)程序可以通过编译并正常运行,结果输出“Name: b; Age:97”
(C)程序可以通过编译并正常运行,结果输出“Name: b; Age:98”
(D)程序可以通过编译并正常运行,结果输出“Name: a; Age:97”
20. 关于下面程序代码,结论正确的是( )。
(A)程序可以通过编译并正常运行,结果输出“Index=98; Age=0”
(B)程序可以通过编译并正常运行,结果输出“Index=0; Age=98”
(C)程序可以通过编译并正常运行,结果输出“Index=0; Age=0”
(D)程序可以通过编译并正常运行,结果输出“Index=98; Age=98”
(E)程序无法通过编译
21. 关于下面程序代码,结论正确的是( )。
(A)程序可以通过编译并正常运行,结果输出“Index=98; Age=0”
(B)程序可以通过编译并正常运行,结果输出“Index=0; Age=98”
(C)程序可以通过编译并正常运行,结果输出“Index=0; Age=0”
(D)程序可以通过编译并正常运行,结果输出“Index=98; Age=98”
(E)程序无法通过编译
22. 关于下面程序代码,结论正确的是( )。
(A)程序可以通过编译并正常运行,结果输出“Index=98; Age=0”
(B)程序可以通过编译并正常运行,结果输出“Index=0; Age=98”
(C)程序可以通过编译并正常运行,结果输出“Index=0; Age=0”
(D)程序可以通过编译并正常运行,结果输出“Index=98; Age=98”
(E)程序无法通过编译
23. 已知“123456789123456789”在类型long的表示范围之内,但不在类int的表示范围之内,关于下面代码结论正确的是( )。