《JAVA程序设计》期末考试试题 (六)
二、选择题
4.下列修饰符中与访问控制无关的是 ( D ) A.private C.protected
5. void的含义: ( A ) A.方法没有返回值 C.没有意义
6. return语句: ( C ) A.只能让方法返回数值 C.方法中可以有多句return
10.关于方法main()的说法哪个正确?( C ) A.方法main()只能放在公共类中 B main()的头定义可以根据情况任意更改 C.一个类中可以没有main()方法
D.所有对象的创建都必须放在main()方法中
11.构造函数何时被调用? ( A ) A、创建对象时 C、使用对象的方法时
12. 抽象方法: ( C ) A、可以有方法体 B、可以出现在非抽象类中 C、是没有方法体的方法
D、抽象类中的方法都是抽象方法
13.关于继承的说法正确的是: ( B ) A、子类将继承父类所有的属性和方法。 B、子类将继承父类的非私有属性和方法。 C、子类只继承父类public方法和属性
B、类定义时
D、使用对象的属性时
B.方法都必须含有 D.不能用来返回对象
B. 方法体为空 D. 定义方法时必须使用
B.public D.final
D、子类只继承父类的方法,而不继承属性
14.关于构造函数的说法哪个正确? ( C ) A、一个类只能有一个构造函数 B、一个类可以有多个不同名的构造函数 C、构造函数与类同名
D、构造函数必须自己定义,不能使用父类的构造函数
15. this和super: ( C ) A、都可以用在main()方法中 B、都是指一个内存地址 C、不能用在main()方法中 D、意义相同
16.关于super的说法正确的是: ( B ) A、是指当前对象的内存地址
B、是指当前对象的父类对象的内存地址 C、是指当前对象的父类 D、可以用在main()方法中
17.覆盖与重载的关系是 ( A )
A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中 B.覆盖方法可以不同名,而重载方法必须同名 C.final修饰的方法可以被覆盖,但不能被重载 D.覆盖与重载是同一回事
18.关于接口哪个正确? ( A ) A、实现一个接口必须实现接口的所有方法 B.一个类只能实现一个接口 C.接口间不能有继承关系 D.接口和抽象类是同一回事
19.异常包含下列哪些内容? ( A ) A.程序执行过程中遇到的事先没有预料到的情况
B.程序中的语法错误 C.程序的编译错误 D.以上都是
20. 对于已经被定义过可能抛出异常的语句,在编程时: ( A ) A、必须使用try/catch语句处理异常,或用throws将其抛出 B.如果程序错误,必须使用 try/catch语句处理异常 C.可以置之不理
D.只能使用try/catch语句处理
三、程序填空题 1.public class Sum{ }
输出结果为:
j is : (1) j in calculate() is : (2) At last j is : (3) 答案:(1) 10; (2) 20; (3) 10。
2. 按要求填空
abstract class SuperAbstract{
void a(){…} abstract void b();
public static void main(String [] args){ }
static void calculate (int j){ }
for (int i = 0;i<10;i++)
j++;
System.out.println(\int j=10;
System.out.println(\calculate(j);
System.out.println(\
}
abstract int c(int i);
interface AsSuper { }
abstract class SubAbstract extends SuperAbstract implements AsSuper {
public void b(){…} }
public class InheritAbstract extends SubAbstract{ }
在以上这段程序中:
抽象类有:SuperAbstract和 (1) (写出类名) 非抽象类有: (2) (写出类名) 接口有: (3) (写出接口名)
AsSuper中的x()方法是(4)方法,所以在InheritAbstract中必须对它进行(5) 答案:
(1) SuperAbstract; (2) InheritAbstract; (3) AsSuper; (4) 抽象;
public void x(){…} public int c(int i ) {…} public String f(){…}
public static void main(String args[]){ }
InheritAbstract instance=new InheritAbstract(); instance.x(); instance.a(); instance.b(); instance.c(100);
System.out.println(instance.f()); abstract String f(); void x();
(5) 覆盖和实现。
5. 阅读程序,给出结果:
// AbstractClassDemo.java源代码如下:
abstract class Shape { //定义抽象类Shape和抽象方法display }
class Circle extends Shape { }
class Rectangle extends Shape { }
class Triangle extends Shape { }
public class AbstractClassDemo{ }
输出结果是 ?
答案:(1) Circle; (2) Rectangle; (3) Triangle.
public static void main(String args[]){ }
(new Circle()).display(); //定义无名对象来调用对应的display方法 (new Rectangle()).display(); (new Triangle()).display(); void display() { }
//实现抽象类的方法
System.out.println(\void display() { //实现抽象类的方法
System.out.println(\}
void display() { }
//实现抽象类的方法
System.out.println(\abstract void display();