--------------------------------------学院课程考试试卷
课程名称:《JAVA OOP:JAVA面向对象编程》 (C)卷
选择题(每小题2分)
1. 在Java中,com包中某类的方法使用下列( )访问修饰符修饰后,可以被com.db包中的子类访问,但不能被com.db中其他类访问。 A. private B. protected C. public D. friendly
2. 在Java中,下列( )类不能派生出子类。
A. public class Myclass{} B. class MyClass{} C. abstract class MyClass{} D. final class MyClass{}
3. 在Java中,关键字( )用来调用父类的构造方法。 装 System.out.println("this is a Person");
} }
public class Teacher extends Person {
private String name="tom";
public Teacher() {
System.out.println("this is a teacher"); Super(); }
public static void main(String args[]) {
Teacher teacher = new Teacher(); System.out.println(this.name); --------------------------------------订------------------------------A. super B. this C. extends D. abstract
4. 以下属于OOP的特征的是( )。【选两项】
A. 封装 B. 继承 C. 重载 D. 重写
5. 以下对继承的描述错误的是( )。
线A. Java中继承允许一个子类继承多个父类 B. 父类更具有通用性,---------------------------------------- 子类更为具体
C. Java中的继承存在着传递性 D. 当实例化子类时会递归调用父类中的构造方法
6. 以下程序的运行结果是( )。
class Person
{
public Person() {
} }
A. this is a Person this is a teacher tom
B. this is a teacher this is a Person tom C. 编译出错
D. 以上说法都不正确
7. 在使用super和this关键字时,以下描述正确的是( )。
A. 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过 B. super()和this()不一定要放在构造方法内第一行 C. this和super可以同时出现在一个构造函数里面
D. this ()和super()可以在static环境中使用,包括static方法、static语句
块
8. 以下对封装的描述正确的是( )。
A. 只能对一个类中的方法进行封装,不能对属性进行封装
B. 如果子类继承了父类,对于父类中进行封装的方法,子类仍然可以直接调用
C. 封装的意义并不大,因此在编码时尽量不要使用封装
D. 封装的主要作用在于对外隐藏内部实现细节,增强程序的安全性
9. 以下属于Object类方法的是( )。【选两项】
A. clone() B. toString() C. length() D. forName()
10. 访问修饰符的访问范围从小到大依次是( )。
A. public,protected,private,default B. private,protected,default,public C. protected,default,public,private D. private,default,protected,public
11. 以下代码中,this是指( )。 class Bird{ int x,y;
void fly(int x,int y){ this.x=x; this.y=y; } }
A. Bird对象的引用 B. fly C. bird或fly D. 不一定
12. 下面是有关子类继承父类构造函数的描述,正确的是( )。
A. 创建子类的对象时,先调用子类自己的构造函数,然后调用父类的构造函数
B. 子类无条件地继承父类不含参数的构造函数
C. 子类必须通过super关键字调用父类的构造函数 D. 子类无法继承父类的构造函数
13. 在JAVA中,使用( )关键字来定义一个接口。
A. class B. interface C. extends D. implements
14. 在JAVA中,下面关于抽象类的描述正确的是( )。【选两项】
A. 抽象类可以被实例化
B. 如果一个类中有一个方法被声明为抽象的,那么该类必须是抽象类 C. 抽象类中的方法必须都是抽象的 D. 声明抽象类必须带有关键字abstract
15. 在Java中,已定义两个接口B和C,要定义一个类来实现这两个接口,以下语句正确的是( )。
A. interface A extends B,C B. inteface A implements B,C C. class A implements B,C D. class A implements B,implements C 16. 在Java中,如果父类中的某些方法不包含任何逻辑,并且需要由子类重写,应该使用( )关键字来声明父类的这些方法。 A. final B. static C. abstract D. void
17. 在Java中,使用( )关键字来定义一个接口。
A. class B. interface C. extends D. implements
18. 多态的两种表现形式有( )。【选两项】
A. 重载 B. 重写 C. 抽象 D. 继承 19. 以下对重载描述错误的是( )。
A. 方法重载只能发生在一个类的内部 B. 构造方法不能够重载
C. 重载要求方法名相同,参数列表不同 D. 方法的返回值类型不是区分方法重载的条件
20. 以下哪个选项的方法添加到ComputerBook中不会出错( )。
class Book
{
protected int getPrice() {
return 80; } }
public class ComputerBook extends Book {
}
A. protected float getPrice( ){ } B. protected int getPrice(int page){ } C. int getPrice( ) { } D. 以上说法都不正确
21. 以下对抽象类的描述正确的是( )。
A. 抽象类没有构造方法 B. 抽象类必须提供抽象方法 C. 有抽象方法的类一定是抽象类,抽象类不一定有抽象方法 D. 抽象类可以通过new关键字直接实例化
22. 以下对接口描述正确的是( )。
A. 接口没有提供构造方法 B. 接口不允许多继承 C. 接口中的属性默认使用public、static、final修饰 D. 接口中的方法默认使用public、abstract修饰
23. 以下对抽象类和接口描述正确的是( )。
A. 接口没有提供构造方法 B. 抽象类解决了Java不允许多继承的问题 C. 抽象类不能实现接口 D. 接口和抽象类都提供了构造方法
24. 以下代码正确的执行结果是( )。
class A {
private int i = 10; public void printI() { System.out.print(i); } }
class B extends A { private int i = 20; public void printI() { System.out.print(i); } }
public class Test {
public static void main(String args[]) { B b = new B(); A a = b; b.printI(); a.printI(); } }
A. 10 10 B. 10 20 C. 20 10 20 20
25. 对于以下代码的执行结果描述正确的是( )。
public interface Guard{
void doYourJob(); }
abstract public class Dog implements Guard{ }
A. 无法编译,因为接口中的方法必须定义为abstract B. 无法编译,Dog类必须实现这个方法
D.
C. 无法编译,因为Dog类必须使用extends而不是impelments. D. 代码可以正确编译
26. 下列关于子类和父类关系的叙述中,错误的是( )。 A. 父类不能替代子类 B. 子类能够替代父类 C. 子类继承父类 D. 父类包含子类
27. 构造BufferedInputStream的合适参数是( )。【选两项】 A. BufferedInputStream B. BufferedOutputStream
C. FileInputStream D. FileOuterStream E. File
28. 下面的方法可以在任何时候被任何线程调用而不会产生预期的异常的是
( )【选三项】
A. notify() B. synchronized(this) C. notifyAll() D. sleep() E. yield()
29. 下列可以以线程方式运行的类正确的是( )。 A. public class X implements Thread { public void run() { } }
B. public class X implements Runnable { protected void run() { } }
C. public class X implements Thread {
public int run() { } }
D. public class X extends Thread { public void run() { }
}
30. 有一个类A,对于其构造函数的声明正确的是( )。
A. void A(int x){…} B. A(int x){…} C. A A(int x){…} D. int A(int x){…}
31. 下面有关子类调用父类构造函数的描述正确的是( )。 A. 子类定义了自己的构造函数,就不会调用父类的构造函数 B. 子类必须通过super关键字调用父类没有参数的构造函数
C. 如果子类的构造函数没有通过super调用父类构造函数,那么子类会先调用父类不含参数的构造函数,再调用子类自己的构造函数
D. 创建子类对象时,先调用子类自己的构造函数,然后调用父类的构造函数
32. 在Java中,要定义类的保护类型元素,则必须使用的关键字是( )。A. default B. private C. public D. protected
33. 下述哪一组方法为在一个类中方法重载的正确写法( )。
A. int addValue( int a, int b ){return a+b;} float addValue ( float a, float b) {return a+b;} B. int addValue (int a, int b ){value=a+b; }
float addValue ( int a, int b) {return (float)(a+b);} C. int addValue( int a, int b ){return a+1;} int addValue ( int a, int b) {return a+b;} D. int addValue( int a, int b ) {return a+b;}
int addValue(int x,int y) {return x+y;}
34. 以下关键字可以抛出异常的是( )。
A. transient B. finally C. throw D. static
35. finally 块中的代码将( )。
A. 总是被执行
B.如果try块后面没有catch块时,finally块中的代码才会执行 C. 异常发生时才被执行 D. 异常没有发生时才被执行
36. java中,用于继承父类的关键字是( )。
A. public B. protected C. extends D. private 37. 下列可以终止当前线程的运行的是( )。【选三项】 A. 抛出一个异常时 B. 当该线程调用sleep()方法时
C. 当创建一个新线程时 D. 当一个优先级高的线程进入就绪状态时 38. 关于异常处理机制的叙述以下正确的是( )。【选两项】 A. catch部分捕捉到异常情况时,才会执行finally部分 B. 当try区段的程序发生异常时,才会执行catch区段的程序 C. 不论程序是否发生错误及捕捉到异常,都会执行finally部分 D. 以上都是
39. 下列关于接口的叙述错误的是( )。【选两项】
A. 接口中的数据必须设定初值 B. 接口中无法声明一般方法 C. 接口可以声明引用 D. 以上都正确
40. Java语言中,方法的重写(Overriding)和重载(Overloading)是多态性的
不同表现。下面说法正确的是( )。【选两项】 A. 重写是父类与子类之间多态性的一种表现 B. 重写是一个类中多态性的一种表现 C. 重载是一个类中多态性的一种表现
D. 重载是父类与子类之间多态性的一种表现
41. 在类设计中,类的成员变量要求仅仅能够被同一package下的类访问,请
问应该使用下列哪个修饰符( )。
A. protected B. public C. private D. 不需要任何修饰符
42. 已知A类被打包在packageA中,B类被打包在PackageB中,且B类被
声明为public,且有一个成员变量x被声明为protected控制方式。C类也位于packageA包,且继承了B类。则以下说法中正确的是( ) A. A类的实例不能访问到B类的实例
B. A类的实例能过访问到B类一个实例的x成员 C. C类的实例可以访问到B类一个实例的x成员 D. C类的实例不能访问到B类的实例
43. 下列情况中,哪一项不需要异常机制( )。
A. 当方法因为自身无法控制的原因而不能完成其任务时 B. 编译出错时
C. 处理在方法、类库、类中抛出的异常时 D. 使系统从故障中恢复时
44. 下面关于Set里删除对象运行结果为( )。
import java.util.*; public class Test {
public static void main(String args[]) { Set s.add(i); s.remove(i - 1); } System.out.println(s.size()); } } A. 1 B. 100 C. throws Exception D. none of the Above 45. 在面向对象数据模型中,子类不但可以从其超类中继承所有的属性和方 法,而且还可以定义自己的属性和方法,这有利于实现( )。 A. 可移植性 B. 可扩展性 C. 安全性 D. 可靠性 46. 在如下的代码处,可以填写的选项为( )。 class Person { private int a; } public class Man extends Person { public int b; public static void main(String arg[]) { Person p = new Person(); Man t = new Man(); int i; // 这里 } } A. i =a B. i=b C. i=p.a D. i=t.b 47. 假设类MyBook实现了java.io.Serializable接口,有程序中某个MyBook 的实例,被写到流两次,如下代码: MyBook book = new MyBook(); ...some code here... out.writeObject(book); out.writeObject(book); 在反序列化的时候,进行了如下操作: MyBook book1 = (MyBook)in.readObject(); MyBook book2 = (MyBook)in.readObject(); 请问以上过程得到的两个引用book1和book2,是否指向同一个对象(即是否book1 == book2)?( )。 A. book1 == book2 B. book1!=book2 C. book1 > book2 D. book1 < book2 48 以下方法可以防止方法被子类覆盖(Override)的是( )。 A. final void methoda() {} B. final abstract void methoda() {} C. static void methoda() {} C. static final void methoda() {} 49. wait、notify不在sunchronized方法或者synchronized block中被调用的后果是( )。 A. 没有问题,完全可以使用 B. 编译不能通过 C.可以编译,但运行时可能出错 D. 以上说法都不正确 50. 以下不属于JDK 中集合框架接口的是( )。 A. Collection B. Set C. List D. Map 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务