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