面向对象试题(答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CoreJavaOOP考试题
考试时间:90分钟
考试总分:100分
一、选择题(不定项选择)(22*4=88)
1.
类A,B的定义如下:
class A {
private int a = 100;
A() {
System.out.print("A()");
System.out.println(a);
}
}
class B extends A {
private int a = 200;
B() {
System.out.print("B()");
System.out.println(a);
}
}
运行下面的代码:
new B();
输出的结果是:( A )。
A.
A() 100
B() 200
B.
A() 200
B() 200
C.
B() 200
A() 100
D.
B() 200
A() 200
2.下列说确的是( D )
A.所有类都必须定义构造方法(构造器)
B.构造方法必须初始化类的所有数据成员
C.子类定义了构造器后,不再调用父类的构造器
D.构造方法可以访问类的非静态成员
3.在Java中,哪个关键字使类不能派生子类?, ( A )
A : final
B : public
C : private
D : native
4.class Base{
static void test(){
System.out.println(“Base.test()”);
}
}
public class Child extends Base{
static void test(){
System.out.println(“Child.test()”);
}
public static void main(String[] args){
Base base = new Child();
Child child = new Child();
base.test();
child.test();
}
}
程序运行的结果是( C )
A.Child.test() Child.test()
B.Child.test() Base.test()
C.Base.test() Child.test()
D.Base.test() Base.test()
5.下列哪些叙述是正确的( CD )
A.在一个类中,方法不能与类名相同
B.abstract 可以修饰属性、方法和类
C.实例方法可直接调用本类的static方法和非static方法
D.static方法不能调用非static方法
6.以下说确的是(ABC)
A.子类不能继承父类的构造方法
B.子类的构造方法可以访问父类的构造方法
C.子类不可直接访问父类的私有属性
D.子类可以重写父类的所有方法
7.分析选项中关于Java中this关键字的说确的是( A )
A.this关键字是在对象部指代自身的引用
B.this关键字可以在类中的任何位置使用
C.this关键字和类关联,而不是和特定的对象关联
D.同一个类的不同对象共用一个this
8 下列关于继承的说法哪个是正确的?( B )
A.子类只继承父类public方法和属性
B.子类继承父类的非私有属性和方法
C.子类只继承父类的方法,而不继承父类的属性
D.子类将继承父类的所有属性和方法
9.在Java中,关于final关键字的说确的是( AC )
A.final修饰的变量,一旦赋值就不能被更改
B.final修饰的类只能被一个子类继承
C.final修饰的方法,不能在子类中被覆盖
D.final修饰的方法,不能被子类继承
10. String s=new String(“xyz”)创建了几个对象(C);
A. 0
B. 1
C. 2
D. 3
11.下列语句的序列执行后,k的值是( B )
int m=3,n=6,k=0;
While((m++)<(--n))++k;
A.0
B.1
C.2
D.3
12.下列哪一项不是面向对象的典型特征( D )
A.封装 B.继承
C. 多态
D.抽象
13.(多选)在java中,关于构造方法,下列说确的是( ABD )
A.构造方法的名称必须与类名相同
B.构造方法可以带参数
C.构造方法不可以重载
D.构造方法绝对不能有返回值
14.下面关于变量的说确的是( BC )
A.实例变量可以通过类名直接调用
B.类变量可以通过类名直接调用
C. Java中的参数传递都是值传递
D. 在不同的作用域不能定义相同的变量
15.下列代码有编译错误的是第( C )行
1)public class Test{
2) public static void main(String[] args){
3)int[] arr1 = new int[12];
4) char[] arr2 = new char[];
5) int[] arr3 = {};
6) Object[] obj = new Object[4];
7) Object obj1 = new object[9];
8) }
9)}