JAVA面向对象基础测试题.docx
《JAVA面向对象基础测试题.docx》由会员分享,可在线阅读,更多相关《JAVA面向对象基础测试题.docx(24页珍藏版)》请在冰豆网上搜索。
JAVA面向对象基础测试题
读书破万卷下笔如有神
JAVA面向对象基础测试题
提示:
本题为第一阶段,JAVA面向对象基础部分练习题,包括对象,类,继承,封装,多态,接口,内部类等等,java核心基础,适合初学者对面向对象基础的知识进行测试,以便查漏补缺。
1.
程序执行的结果是:
()。
01
publicclassPoint{
02
inty=7;
03
publicvoidstep(inty){
04
y+=y;
05
System.out.println(y);
06
读书破万卷下笔如有神
}
07
publicstaticvoidmain(String[]args){
08
Pointp=newPoint();
09
p.step(10);
10
}
11
}
A.14
B.20
C.10
D.17
正确答案:
B解析:
2.
读书破万卷下笔如有神
程序的执行结果是:
()。
01
publicclassQuestion{
02
privateintnum;
03
publicstaticvoidmain(String[]args){
04
Questionq=newQuestion();
05
q.num=13;
06
update(q);
07
System.out.println(q.num);
08
}
读书破万卷下笔如有神
09
publicstaticvoidupdate(Questionq){
10
q.num=9;
11
}
12
}
A.13
B.9
C.0
D.4
正确答案:
B解析:
3.
程序执行的结果是:
()。
01
publicclassAnswer{
读书破万卷下笔如有神
02
publicstaticvoidmain(String[]args){
03
intscore=20;
04
Answerans=newAnswer();
05
ans.add(score);
06
System.out.println(main:
score=+score);
07
}
08
voidadd(intscore){
09
System.out.println(add:
score=+score++);
10
读书破万卷下笔如有神
}
11
}
A.
1
add:
score=21
2
main:
score=21
B.
1
add:
score=20
2
main:
score=21
C.
1
add:
score=21
2
读书破万卷下笔如有神
main:
score=20
D.
1
add:
score=20
2
main:
score=20
正确答案:
D解析:
4.
下列代码编译或运行的结果是:
()。
01
publicclassSnow{
02
publicStringjump(intx,inty){
03
returnjumpone;
04
}
读书破万卷下笔如有神
05
publicStringjump(int[]vals){
06
returnjumptwo;
07
}
08
publicstaticvoidmain(String[]args){
09
Snows=newSnow();
10
System.out.println(s.jump(4,5));
11
}
12
}
行,编译出错A.publicStringjump(int[]vals){
读书破万卷下笔如有神
B.System.out.println(s.jump(4,5));行,抛出运行时异常
C.输出:
jumpone
D.输出:
jumptwo
正确答案:
C解析:
5.
关于下列代码说法正确的是:
()。
01
Storm{publicclass
02
find(){publicvoid
03
}
04
publicStringfind(){
05
return
ind;
06
读书破万卷下笔如有神
}
07
publicdoublefind(intx){
08
return2.0;
09
}
10
}
A.无编译错误
B.代码publicStringfind(){行,出现编译错误
C.代码publicdoublefind(intx){行,出现编译错误
D.代码return
ind;行处出现编译错误
正确答案:
B解析:
6.
请看下列代码:
01
读书破万卷下笔如有神
classClassA{}
02
classClassBextendsClassA{}
03
classClassCextendsClassA{}
04
publicclassTest{
05
publicstaticvoidmain(String[]args){
06
ClassAp0=newClassA();
07
ClassBp1=newClassB();
08
ClassCp2=newClassC();
09
ClassAp3=newClassB();
读书破万卷下笔如有神
10
ClassAp4=newClassC();
11
<插入代码>
12
}
13
}
下列选项中放置在<插入代码>处,使程序编译正确的是:
()。
A.p0=p1;
B.p1=p2;
C.p2=p4;
D.p2=(ClassC)p1;
A解析:
正确答案:
7.
下列代码的运行结果是:
()。
01
读书破万卷下笔如有神
publicclassAnimal{
02
publicStringnoise(){
03
returnAnimal;
04
}
05
publicstaticvoidmain(String[]args){
06
Catcat=null;
07
Animalanimal=newDog();
08
if(animalinstanceofCat){
09
cat=(Cat)animal;
读书破万卷下笔如有神
10
System.out.println(cat.noise());
11
}else{
12
System.out.println(animalisnotCat'sinstance);
13
}
14
}
15
}
16
classDogextendsAnimal{
17
publicStringnoise(){
18
读书破万卷下笔如有神
returnDog;
19
}
20
}
21
classCatextendsAnimal{
22
publicStringnoise(){
23
returnCat;
24
}
25
}
A.Animal
B.Dog
读书破万卷下笔如有神
C.Cat
D.animalisnotCat'sinstance
正确答案:
D解析:
8.
请看下列代码编译和运行的结果是:
()。
1
publicclassTeacher{
2
privateStringname=sun;
3
publicstaticvoidmain(String[]args){
4
Teacher[]teachers=newTeacher[2];
5
System.out.println(teachers[0].name);
6
System.out.println(teachers.length);
读书破万卷下笔如有神
7
}
8
}
A.sun2
B.null2
C.null1
D.运行时抛出NullPointerException异常
正确答案:
D解析:
9.
下列代码编译和运行的结果是:
()。
01
classPerson{
02
Stringname=;
03
读书破万卷下笔如有神
04
publicPerson(Stringname){
05
this.name=name;
06
}
07
}
08
09
classEmployeeextendsPerson{
10
StringempNO=
11
12
读书破万卷下笔如有神
publicEmployee(StringempNO){
13
this.empNO=empNO;
14
}
15
}
16
17
publicclassEmployeeTest{
18
publicstaticvoidmain(String[]args){
19
Employeee=newEmployee(H9);
20
System.out.println(e.empNO);
读书破万卷下笔如有神
21
}
22
}
A.输出:
0000
B.输出:
1109
C.代码publicEmployee(StringempNO){行,出现编译错误
抛出运行时异常D.解析:
正确答案:
C10.
。
()下列代码编译和运行的结果是:
01
classA{
02
publicvoidstart(){
03
System.out.println(AStart);
读书破万卷下笔如有神
04
}
05
}
06
publicclassBextendsA{
07
publicvoidstart(){
08
System.out.println(BStart);
09
}
10
publicstaticvoidmain(String[]args){
11
((A)newB()).start();
12
读书破万卷下笔如有神
}
13
}
A.输出:
AStart
B.输出:
BStart
C.输出:
AStartBStart
D.编译错误
正确答案:
B解析:
11.
关于下列代码说法正确的是:
()。
01
publicinterfaceA{
02
publicvoiddoSomething(Stringthing);
03
}
04
读书破万卷下笔如有神
interfaceB{
05
}
06
interfaceCextendsA,B{
07
}
08
interfaceD{
09
publicvoiddoIt(Stringthing);
10
}
11
classAImplimplementsC,D{
12
publicvoiddoSomething(Stringmsg){}
读书破万卷下笔如有神
13
publicvoiddoIt(Stringthing){}
14
}
A.所有类和接口都编译成功
B.接口A编译失败
C.类AImpl编译失败
D.接口C编译失败
正确答案:
A解析:
12.
在Java中,关于final关键字的说法正确的是:
()。
A.如果修饰局部变量,必须定义时初始化
B.如果修饰类,则该类只能被一个子类继承
C.如果修饰方法,则该方法不能在子类中被覆盖
D.如果修饰方法,则该方法所在的类不能被继承
正确答案:
C解析:
13.
读书破万卷下笔如有神
关于下列代码说法正确的是:
()。
01
publicclassCell{
02
privatefinalintid;
03
publicCell(intid){
04
this.id=id;
05
}
06
publicvoidupdateId(intid){
07
this.id=id;
08
}
读书破万卷下笔如有神
09
publicstaticvoidmain(String[]args){
10
Cellcell=newCell(1001);
11
cell.updateId(1002);
12
System.out.println(cell.id);
13
}
14
}
A.编译错误
B.运行时异常抛出
C.运行后,cell对象属性id的值没有改变,仍然是1001
D.运行后,cell对象属性id的值改变成新的值1002
解析:
A正确答案:
读书破万卷下笔如有神
14.
下列选项中,不属于Java的访问控制修饰符的是:
()。
A.private
B.protected
C.friendly
D.public
正确答案:
C解析:
15.
下面关于import,class和package的声明顺序正确的是:
()。
A.package,import,class
B.class,import,package
C.import,package,class
D.package,class,import
正确答案:
A解析:
16.
有一个名为Product的类,下列方法中属于该类的构造方法的是:
。
().
读书破万卷下笔如有神
A.publicProduct(){}
B.publicProduct(Stringname){}
C.publicvoidProduct(){}
D.publicvoidProduct(Stringname){}
正确答案:
AB解析:
17.
请看下列代码:
1
publicclassTetromino{
2
protectedintmove(intx){
3
return0;
4
}
5
}
读书破万卷下笔如有神
6
classTextendsTetromino{
7
<插入代码>
8
}
在<插入代码>处填入选项中的代码,使T类没有编译错误的是:
()。
A.publicintmove(intx){return0;}
B.privateintmove(intx){return0;}
C.privateintmove(longx){return0;}
D.protectedlongmove(intx){return0;}
正确答案:
AC解析:
18.
下列关于JVM的内存结构描述正确的是:
()。
A.类的各种信息在堆中保存
栈用于存放程序运行过程当中所有的局部变量B.
读书破万卷下笔如有神
C.堆一般用于存储使用new关键字创建的对象
D.类是JVM的内存结构
正确答案:
BC解析:
19.
请看下列代码:
1
publicclassFoo{
2
staticvoidalpha(){/*morecodehere*/}
3
voidbeta(){/*morecodehere*/}
4
}
下列说法正确的是:
()。
A.Foo.beta()是调用beta方法的正确方式
B.Foo.alpha()是调用alpha方法的正确方式
方法alpha方法可以直接调用C.beta
读书破万卷下笔如有神
D.alpha方法可以直接调用beta方法
正确答案:
BC解析:
20.
请看下列代码:
1
publicclassLine{
2
privatePointp;
3
publicLine(){
4
<插入代码>
5
}
6
publicclassPoint{}
7
读书破万卷下笔如有神
}
在<插入代码>处,需要创建Point类的对象,下列选项正确的是:
()。
A.super.p=newPoint();
B.p=super.newPoint();
C.p=newPoint();
D.p=this.newPoint();
解析:
CD正确答案: