java面向对象考题和答案doc.docx
《java面向对象考题和答案doc.docx》由会员分享,可在线阅读,更多相关《java面向对象考题和答案doc.docx(19页珍藏版)》请在冰豆网上搜索。
java面向对象考题和答案doc
1.下面代码的输出结果是:
publicclassMoin{
publicstaticvoidmain(String[]args)intn二100;
intm=200;
System・out.println(f(n,m));
System・out.println(n);
}
publicstaticintf(intm,intn){
n=m+n;
returnn;
}
}
A.300
300
B.100
100
C.300
100
D.100
300
2.程序执行的结果是:
publicclassTest{
publicstaticvoidmain(String[]args){
intx=6;
Testp=newTest();
p.doStuff(x);
System,out.prmain:
x二"+x);
}
voiddoStuff(intx){
System,out.prdoStuff:
x二"+x++);}
}
A.doStuff:
x=7
main:
x=7
B.doStuff:
x=7
main:
x=6
C.doStuff:
x=6
main:
x=7
D.doStuff:
x=6
main:
x=6
3.下列关于JVM的内存结构描述正确的是:
A.类的各种信息在方法区中保存
B.堆用于存放程序运行过程当中所有的局部变量
C.栈用于存储使用new关键字创建的对彖
D.数组属于JVM的内存结构
4.下列代码的输出结果是:
publicclassTest{
publicvoidprint(charc){
System・out.println(〃c〃);
}
publicvoidprint(inti){
System・out.pri;
}
publicvoidprint(doubled){
System,out.println(〃d〃);
}
publicvoidprint(Strings){
System・out.println(〃s〃);
}
publicstaticvoidmain(String[]args){
Testtest二newTest();
test,print('5’);
}
}
A.c
B.i
C.d
D.s
5.程序执行的结果是:
publicclassTest{
Stringname二"TonT;
publicTest(Stringname){
name=name;
}
publicstaticvoidmain(String[]args){
Testt=newTest("Jack");
System・out.println(t・name);
A.
B.Tom
〃〃
null
C.Jack
6.关于构造方法,下列说法错误的是:
A.构造方法不可以进行方法重写
B.构造方法用来实例化一个新的对彖
C.构造方法具冇和类名相同的名称
D.构造方法不返回任何数据类型
7.关于Java中继承的特点,下列说法正确的是:
A.使类的定义复杂化
B.Java只支持单继承,不可多继承,但可以通过实现接口來达到多继承的目的
C.子类继承父类的所有成员变量和方法,包括父类的构造方法
D.不可以多层继承,即一个类不可以继承另一个类的了类
&下列代码运行的结果是:
classFoo{
publicinta;
publicFoo(){
a=3;
}
publicvoidaddFive(){
a+=5;
}
}
classBarextendsFoo{
publicinta;
publicBar0{
a=8;
}
publicvoidaddFive(){
this,a+=5;
}
}
publicclassTestFoo{
publicstaticvoidmain(String[]args){
Foofoo=newBar();
foo.addFive();
System,out.println("Value:
"+foo.a);
}
}
A.Value:
3
B.Value:
8
C.Value:
13
D.Value:
18
9.下列代码编译和运行的结果是:
classPerson{
Stringname="Noname";
publicPerson(Stringnm){
name=nm;
}
}
classEmployeeextendsPerson{
StringempID="0000〃;
publicEmployee(Stringid){
empTD=id;
}
}
pubIicclassEmployeeTest{
publicstaticvoidmdin(String[]args){
Employeee=newEmployee(〃4321〃);
System,out.println(e>empID);
}
}
A.输出:
0000
B.输出:
4321
C.代码publicEmployee(Stringid){行,出现编译错误
D.抛出运行时异常
10.下列代码的运行结果是:
publicclassAnimal{
publicStringnoiseO{
return"peep";
}
publicstaticvoidmdin(String[]args){
Animalanimal=newDog();
Catcat=(Cat)animal;
System・out・println(cat・noiseO);
}
}
classDogextendsAnimal{
publicStringnoiseO{
return〃bark〃;
}
}
classCatextendsAnimal{
publicStringnoiseO{
return"meow";
}
}
A.peep
B.bark
C・meow
D.抛出运行时界常
11.下列代码编译和运行的结果是:
publicclassA{
publicvoidstart(){
System,out.println("TestA");
}
}
publicclassBextendsA{
publicvoidstart(){
System,out.println("TestB");
}
publicstaticvoidmain(String[]args){
((A)newB()).start();
}
}
A.输出:
TestA
B.输出:
TestB
C.输出:
TestATestB
D.编译错误
12.请看下列代码:
classOne{
voidfoo(){
}
}
classTwoextendsOne{
//insertmethodhere
}
下列选项中的代码,放置在<插入代码〉处无编译错误的是:
A.intfoo(){/*morecodehere*/}
B.protectedvoidfoo(){/*morecodehere*/}
C.publicvoidfoo(){/*morecodehere*/}
D.privatevoidfoo(){/*morecodehere*/}
13.下列选项中,不属于Java的访问修饰符的是:
A.private
B.protected
C.friendly
D・public
14•下列代码的输出结果是:
classFoo{
privateintx;
publicFoo(intx){
this,x=x;
}
publicvoidsetX(intx){
this>x=x;
}
publicintgetX(){
returnx;
}
}
publicclassGamma{
staticFoofooBar(Foofoo){
foo=newFoo(lOO);
returnfoo;
}
publicstaticvoidmain(String[]args){
Foofoo=newFoo(300);
System・out・print(foo.getX()+;
FoofooFoo=fooBar(foo);
System・out.print(foo.getX()+"-〃);
System,out.print(fooFoo.getXO+"-〃);
foo=fooBar(fooFoo);
System・out・print(foo.getX()+;
System・out.print(fooFoo.getX());
}
}
A.300-100-100-100-100
B.300-300-100-100-100
C.300-300-300-100-1000.300-300-300300-100
15.下列代码运行的结果是:
publicclassBase{
publicstaticfinalStringFOO="foo";
16.classSubextendsBase{
publicstaticfinalStringFOO="bar";
}
publicstaticvoidmain(String[]args){
Baseb=newBase();
Subs=newSub();
System・out・print(Base.FOO);
System・out.print(Sub・FOO);
System・out.print(b・FOO);
System・out.print(s.FOO);
System,out.print(((Base)s)•FOO);
A.foofoofoofoofoo
B.foobarfoobarbar
C・foobarfoofoofoo
D.foobarfoobarfoo
16.关于下列代码说法正确的是:
publicclassItemTest{
privatefinalintid;
publicItemTest(intid){
this,id=id;
}
publicvoidupdateTd(intnewTd){
id=newld;
}
publicstaticvoidm8in(String[]args)
TtemTestfa=newItemTest(42);
fa.updateTd(69);
System・out.println(fa.id);
}
}
A.编译错谋
B.运行时抛出界常
C•运行后,fa对彖属性id的值没有改变,应然是42
D.运行后,fa对象属性id的值改变成新的值69
17.请看下列代码编译和运行的结果是:
publicclassStudent{
privateStringname二〃sun";
publicstaticvoidmain(String[]args){
Student[]students二newStudent[2];
System・out.printin(students[0].name);
System,out.println(students.1ength);
}
}
A.sun2
B.null2
C.nul11
D.运行时抛出NulIPointerException异常
18.下列代码的输出结果是:
abstractclassVehicle{
publicintspeed(){
return0;
}
}
classCarextendsVehicle{
publicintspeed(){
return60;
}
}
classRaceCarextendsCar{
publicintspeed(){
return150;
}
}
publicclassTestCar{
publicstaticvoidmain(String[]args){
RaceCarracer=newRaceCarO;
Carcar=newRaceCarO;
Vehiclevehicle=newRaceCarO;
System.out.println(racer・speed()+〃,+car.speed()+
+vehicle,speed());
}
C.150,150,150
D.抛出运行时异常
19.请看下列代码:
publicabstractclassEmployee{
protectedabstractdoublegetSalesAmount();
publicdoublegetCommisionO{
returngetSalesAmount()*0.15;estA(){
}
}
classSalesextendsEmployee{
〈插入代码〉
}
在<插入代码〉处填入的方法正确的是:
A.doublegetSalesAmount(){return1230.45;}
B>publicdoublegetSalesAmount(){return1230.45;}
C.privatedoublegetSalesAmount(){return1230.45;}
D.protecteddoublegetSalesAmount(){return1230.45;
20.关丁•下列代码说法正确的是:
publicinterfaceA{
publicvoiddoSomething(Stringthing);
publicclassB{
publicAdoit(){
returnnull;
}
publicStringexecute(){returnnull;
}
}
publicclassCextendsB{
publicAlmpldoit(){returnnull;
}
publicObjectexecute(){
returnnull;
A.所冇类和接口都编译成功
B•类B编译失败
C.
D•类C编译失败
类Aimpl编译失败
21.关于下列代码说法正确的是:
interfaceA{
publicvoidaMethodO;
}
interfaceB{
publicvoidbMethodO;
}
interfaceCextendsA,B{
publicvoidcMethodO;
}
classDimplementsB{
publicvoidbMethodO{}
}
classEextendsDimp1emcntsC{
publicvoidaMethodO{}
publicvoidbMethodO{}
publicvoidcMethodO{}
}
A.编译失败
B・女口果定义De=newE()那么e.bMethodO;调用D类的bMethodO方法
C.如果定义De=(D)(newE())那么e.bMethod();调用D类的bMethod()方法
D•如果定义De=(D)(newE())那么e.bMethodO;调用E类的bMethodO方法
22.请看下列代码:
publicclassUserRequest{
publicvoidrequest(ServletActionaction){
action・doServiceO;
}
publicstaticvoidmain(String[]args){
UserRequestuser=newUserRequest();
user,request(newServletActionO{
publicvoiddoServiceO{
System,out.printin("处理请求");
}
});
}
}
如果上述代码采用回调模式编写,下列关于ServletAction的定义止确的是:
A.publicstaticclassServletAction{
publicvoiddoServiceO;
B.publicfinalclassServletAction{
publicvoiddoServiceO;
}
C.publicclassServletAction{
publicvoiddoServiceO;
}
D.publicinterfaceServletAction{
publicvoiddoServiceO;
}
23.下列代码运行的结果是:
publicclassHello{
Stringtitle;
intvalue;
publicHelloO{
title+二"World";
}
publicHello(intvalue){this.value=value;
title="Hello";
}
publicstaticvoidmain(String[]args){Helloc=newHello(5);
System.out・println(c・title);
}
}
A.Hello
B.HelloWorld
C.HelloWorld5
D.运行后无输出
24.请看下列代码编译和运行的结果是:
interfaceTestA{
StringtoString();
}
publicclassTest{
publicstaticvoidmain(String[]args){
System,out.println(newTestAO{
publicStringtoString(){
return"test";
}
});
}
}
A.输出:
test
B.输出:
null
C.代码System,out.printin(newTestAO{行,编译出错
D.代码publicStringtoStringO{行,编译出错
25.请看下列代码:
1)pub1icclassOuter{
2)voidfn(inti){
3)classInner{
4)voidprint(){
5)System,out.printin(i);
6)}
7)}
8)Innerin=newInner();
9)in.print();
10)}
11)}
12)classTest{
13)publicstaticvoidmain(Stringargs[]){
14)Outerout=newOuter();
15)out.fn(100);
16)}
17)}
关于上述代码说法正确的是:
A.在第5行出现编译错误,fn方法的参数必须用final修饰
在第3行出现编译错课,在方法的内部不能写类
C.在第8行出现编译错课,在方法的内部不能实例化Inner类的对象
D.运行代码,控制台输出100
Al,正确答案:
C
2,正确答案:
D
3,正确答案:
A
4,正确答案:
A
5,正确答案:
B
6,正确答案:
B
7,正确答案:
B
&正确答案:
A
9,正确答案:
C
10,正确答案:
D
11,正确答案:
B
12,正确答案:
BC
13,正确答案:
C
14,正确答案:
B
15,正确答案:
D
16,正确答案:
A
17,正确答案:
D
1&正确答案:
C
19,正确答案:
BD
20,正确答案:
D
21,正确答案:
D
22,正确答案:
D
23,正确答案:
A
24,正确答案:
A
25,正确答案:
A