JAVA面向对象基础测试题继承封装多态等测试题.docx
《JAVA面向对象基础测试题继承封装多态等测试题.docx》由会员分享,可在线阅读,更多相关《JAVA面向对象基础测试题继承封装多态等测试题.docx(18页珍藏版)》请在冰豆网上搜索。
JAVA面向对象基础测试题继承封装多态等测试题
JAVA面向对象基础测试题
提示:
本题为第一阶段,JAVA面向对象基础部分练习题,包括对象,类,继承,封装,多态,接口,内部类等等,java核心基础,适合初学者对面向对象基础的知识进行测试,以便查漏补缺。
1.
程序执行的结果是:
()。
01
publicclassPoint{
02
inty=7;
03
publicvoidstep(inty){
04
y+=y;
05
06
}
07
publicstaticvoidmain(String[]args){
08
Pointp=newPoint();
09
(10);
10
}
11
}
正确答案:
B解析:
2.
程序的执行结果是:
()。
01
publicclassQuestion{
02
privateintnum;
03
publicstaticvoidmain(String[]args){
04
Questionq=newQuestion();
05
=13;
06
update(q);
07
08
}
09
publicstaticvoidupdate(Questionq){
10
=9;
11
}
12
}
正确答案:
B解析:
3.
程序执行的结果是:
()。
01
publicclassAnswer{
02
publicstaticvoidmain(String[]args){
03
intscore=20;
04
Answerans=newAnswer();
05
(score);
06
07
}
08
voidadd(intscore){
09
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
return"jumpone";
04
}
05
publicStringjump(int[]vals){
06
return"jumptwo";
07
}
08
publicstaticvoidmain(String[]args){
09
Snows=newSnow();
10
11
}
12
}
Stringjump(int[]vals){行,编译出错
C.输出:
jumpone
D.输出:
jumptwo
正确答案:
C解析:
5.
关于下列代码说法正确的是:
()。
01
publicclassStorm{
02
publicvoidfind(){
03
}
04
publicStringfind(){
05
return"find";
06
}
07
publicdoublefind(intx){
08
return;
09
}
10
}
A.无编译错误
B.代码publicStringfind(){行,出现编译错误
C.代码publicdoublefind(intx){行,出现编译错误
D.代码return"find";行处出现编译错误
正确答案:
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
}
下列选项中放置在<插入代码>处,使程序编译正确的是:
()。
=p1;
=p2;
=p4;
=(ClassC)p1;
正确答案:
A解析:
7.
下列代码的运行结果是:
()。
01
publicclassAnimal{
02
publicStringnoise(){
03
return"Animal";
04
}
05
publicstaticvoidmain(String[]args){
06
Catcat=null;
07
Animalanimal=newDog();
08
if(animalinstanceofCat){
09
cat=(Cat)animal;
10
11
}else{
12
13
}
14
}
15
}
16
classDogextendsAnimal{
17
publicStringnoise(){
18
return"Dog";
19
}
20
}
21
classCatextendsAnimal{
22
publicStringnoise(){
23
return"Cat";
24
}
25
}
isnotCat'sinstance
正确答案:
D解析:
8.
请看下列代码编译和运行的结果是:
()。
1
publicclassTeacher{
2
privateStringname="sun";
3
publicstaticvoidmain(String[]args){
4
Teacher[]teachers=newTeacher[2];
5
6
7
}
8
}
2
2
1
D.运行时抛出NullPointerException异常
正确答案:
D解析:
9.
下列代码编译和运行的结果是:
()。
01
classPerson{
02
Stringname="";
03
04
publicPerson(Stringname){
05
=name;
06
}
07
}
08
09
classEmployeeextendsPerson{
10
StringempNO="0000";
11
12
publicEmployee(StringempNO){
13
=empNO;
14
}
15
}
16
17
publicclassEmployeeTest{
18
publicstaticvoidmain(String[]args){
19
Employeee=newEmployee("1109");
20
21
}
22
}
A.输出:
0000
B.输出:
1109
C.代码publicEmployee(StringempNO){行,出现编译错误
D.抛出运行时异常
正确答案:
C解析:
10.
下列代码编译和运行的结果是:
()。
01
classA{
02
publicvoidstart(){
03
04
}
05
}
06
publicclassBextendsA{
07
publicvoidstart(){
08
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
=id;
05
}
06
publicvoidupdateId(intid){
07
=id;
08
}
09
publicstaticvoidmain(String[]args){
10
Cellcell=newCell(1001);
11
(1002);
12
13
}
14
}
A.编译错误
B.运行时异常抛出
C.运行后,cell对象属性id的值没有改变,仍然是1001
D.运行后,cell对象属性id的值改变成新的值1002
正确答案:
A解析:
14.
下列选项中,不属于Java的访问控制修饰符的是:
()。
正确答案:
C解析:
15.
下面关于import,class和package的声明顺序正确的是:
()。
import,class
import,package
package,class
class,import
正确答案:
A解析:
16.
有一个名为Product的类,下列方法中属于该类的构造方法的是:
()。
Product(){}
Product(Stringname){}
voidProduct(){}
voidProduct(Stringname){}
正确答案:
AB解析:
17.
请看下列代码:
1
publicclassTetromino{
2
protectedintmove(intx){
3
return0;
4
}
5
}
6
classTextendsTetromino{
7
<插入代码>
8
}
在<插入代码>处填入选项中的代码,使T类没有编译错误的是:
()。
intmove(intx){return0;}
intmove(intx){return0;}
intmove(longx){return0;}
longmove(intx){return0;}
正确答案:
AC解析:
18.
下列关于JVM的内存结构描述正确的是:
()。
A.类的各种信息在堆中保存
B.栈用于存放程序运行过程当中所有的局部变量
C.堆一般用于存储使用new关键字创建的对象
D.类是JVM的内存结构
正确答案:
BC解析:
19.
请看下列代码:
1
publicclassFoo{
2
staticvoidalpha(){/*morecodehere*/}
3
voidbeta(){/*morecodehere*/}
4
}
下列说法正确的是:
()。
方法可以直接调用alpha方法
方法可以直接调用beta方法
正确答案:
BC解析:
20.
请看下列代码:
1
publicclassLine{
2
privatePointp;
3
publicLine(){
4
<插入代码>
5
}
6
publicclassPoint{}
7
}
在<插入代码>处,需要创建Point类的对象,下列选项正确的是:
()。
=newPoint();
=Point();
=newPoint();
=Point();
正确答案:
CD解析: