java面向对象试题.docx

上传人:b****5 文档编号:6909100 上传时间:2023-01-12 格式:DOCX 页数:20 大小:23.46KB
下载 相关 举报
java面向对象试题.docx_第1页
第1页 / 共20页
java面向对象试题.docx_第2页
第2页 / 共20页
java面向对象试题.docx_第3页
第3页 / 共20页
java面向对象试题.docx_第4页
第4页 / 共20页
java面向对象试题.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

java面向对象试题.docx

《java面向对象试题.docx》由会员分享,可在线阅读,更多相关《java面向对象试题.docx(20页珍藏版)》请在冰豆网上搜索。

java面向对象试题.docx

java面向对象试题

OOP考试题

考试时间:

120分钟

考试总分:

100分

一、选择题(不定项选择)(2分/题*37=74分)

1.类A,B的定义如下:

classA{

privateinta=100;

A(){

System.out.print("A()");

System.out.println(a);

}

}

classBextendsA{

privateinta=200;

B(){

System.out.print("B()");

System.out.println(a);

}

}

运行下面的代码:

newB();

输出的结果是:

()。

A.

A()100

B()200

B.

A()200

B()200

C.

B()200

A()100

D.

B()200

A()200

2.

程序执行的结果是:

()。

publicclassPoint{

inty=7;

publicvoidstep(inty){

y+=y;

System.out.println(y);

}

publicstaticvoidmain(String[]args){

Pointp=newPoint();

p.step(10);

}

}

A.14

B.20

C.10

D.17

3.下面代码运行的结果是()

classF{

Stringname=“name_F”;

privateintage;

publicF(){}

}

classCextendsF{

Stringname=“name_C”;

publicC(){}

publicstaticvoidmain(String[]args){

Ff=newC();

Cc=newC();

System.out.println(f.name+”“+c.name);

}

}

A.name_Cname_C

B.name_Cname_F

C.name_Fname_C

D.name_Fname_F

4.(单选题)程序的执行结果是:

()。

publicclassQuestion{

privateintnum;

publicstaticvoidmain(String[]args){

Questionq=newQuestion();

q.num=13;

update(q);

System.out.println(q.num);

}

publicstaticvoidupdate(Questionq){

q.num=9;

}

}

A.13

B.9

C.0

D.4

5.

classBase{

staticvoidtest(){

System.out.println(“Base.test()”);

}

}

publicclassChildextendsBase{

staticvoidtest(){

System.out.println(“Child.test()”);

}

publicstaticvoidmain(String[]args){

Basebase=newChild();

Childchild=newChild();

base.test();

child.test();

}

}

程序运行的结果是()

A.Child.test()Child.test()

B.Child.test()Base.test()

C.Base.test()Child.test()

D.Base.test()Base.test()

6、(单选题)程序执行的结果是:

()。

publicclassAnswer{

publicstaticvoidmain(String[]args){

intscore=20;

Answerans=newAnswer();

ans.add(score);

System.out.println("main:

score="+score);

}

voidadd(intscore){

System.out.println("add:

score="+score++);

}

}

A.add:

score=21

main:

score=21

B.add:

score=20

main:

score=21

C.add:

score=21

main:

score=20

D.add:

score=20

main:

score=20

 

7.

publicclassFoo{

publicstaticvoidmain(String[]args){

Foo1foo1=newFoo1();

System.out.println(foo1.a);

}

inta=10;

publicFoo(){

add();

}

publicvoidadd(){

a++;

System.out.println(a);

}

}

classFoo1extendsFoo{

inta=11;

publicFoo1(){}

publicvoidadd(){

System.out.println(a);

a++;

System.out.println(a);

}

}

程序运行结果()

A.0110

B.0111

C.1111

D.1110

8.(单选题)下列代码编译或运行的结果是:

()。

publicclassSnow{

publicStringjump(intx,inty){

return"jumpone";

}

publicStringjump(int[]vals){

return"jumptwo";

}

publicstaticvoidmain(String[]args){

Snows=newSnow();

System.out.println(s.jump(4,5));

}

}

A.publicStringjump(int[]vals){行,编译出错

B.System.out.println(s.jump(4,5));行,抛出运行时异常

C.输出:

jumpone

D.输出:

jumptwo

 

9.

(单选题)关于下列代码说法正确的是:

()。

publicclassStorm{

publicvoidfind(){

}

publicStringfind(){

return"find";

}

publicdoublefind(intx){

return2.0;

}

}

A.无编译错误

B.代码publicStringfind(){行,出现编译错误

C.代码publicdoublefind(intx){行,出现编译错误

D.代码return"find";行处出现编译错误

10.下列哪些叙述是正确的()

A.在一个类中,方法不能与类名相同

B.abstract可以修饰属性、方法和类

C.实例方法可直接调用本类的static方法和非static方法

D.static方法不能调用非static方法

11.

(单选题)请看下列代码:

classClassA{}

classClassBextendsClassA{}

classClassCextendsClassA{}

publicclassTest{

publicstaticvoidmain(String[]args){

ClassAp0=newClassA();

ClassBp1=newClassB();

ClassCp2=newClassC();

ClassAp3=newClassB();

ClassAp4=newClassC();

<插入代码>

}

}

下列选项中放置在<插入代码>处,使程序编译正确的是:

()。

A.p0=p1;

B.p1=p2;

C.p2=p4;

D.p2=(ClassC)p1;

12.以下说法正确的是()

A.子类不能继承父类的构造方法

B.子类的构造方法可以访问父类的构造方法

C.子类不可直接访问父类的私有属性

D.子类可以重写父类的所有方法

13.关于接口,以下说法错误的是()

A.接口中可以定义非抽象方法

B.接口可以继承多个接口

C.接口中可以定义没有初始化的变量

D.接口可以实现接口

14.

(单选题)请看下列代码编译和运行的结果是:

()。

publicclassTeacher{

privateStringname="sun";

publicstaticvoidmain(String[]args){

Teacher[]teachers=newTeacher[2];

System.out.println(teachers[0].name);

System.out.println(teachers.length);

}

}

A.sun2

B.null2

C.null1

D.运行时抛出NullPointerException异常

15.

classBase{

privateintbase=10;

publicBase(){

test(base);

System.out.println(base);

}

voidtest(intbase){

++this.base;

}

}

publicclassChild{

privateintchild=20;

publicChild(){

test(child);

System.out.println(child);

}

voidtest(intchild){

--this.child;

}

publicstaticvoidmain(String[]args){

newChild();

}

}

程序运行的结果是()

A.19

B.1119

C.1120

D.1019

16、

(单选题)下列代码编译和运行的结果是:

()。

classPerson{

Stringname="";

publicPerson(Stringname){

this.name=name;

}

}

classEmployeeextendsPerson{

StringempNO="0000";

publicEmployee(StringempNO){

this.empNO=empNO;

}

}

publicclassEmployeeTest{

publicstaticvoidmain(String[]args){

Employeee=newEmployee("1109");

System.out.println(e.empNO);

}

}

A.输出:

0000

B.输出:

1109

C.代码publicEmployee(StringempNO){行,出现编译错误

D.抛出运行时异常

 

17.在Java中,关于final关键字的说法正确的是()

A.final修饰的变量,一旦赋值就不能被更改

B.final修饰的类只能被一个子类继承

C.final修饰的方法,不能在子类中被覆盖

D.final修饰的方法,不能被子类继承

18.

(单选题)下列代码编译和运行的结果是:

()。

classA{

publicvoidstart(){

System.out.println("AStart");

}

}

publicclassBextendsA{

publicvoidstart(){

System.out.println("BStart");

}

publicstaticvoidmain(String[]args){

((A)newB()).start();

}

}

A.输出:

AStart

B.输出:

BStart

C.输出:

AStart

BStart

D.编译错误

19.

1)publicinterfaceTest{

2)staticpublicfinalintnum=10;

3)publicstaticvoidadd();

4)publicStringtest(){};

5)publiclongdelete();

6)}

关于上面的代码,以下说法错误的是()

A.第2)行代码有编译错误

B.第3)行代码没有编译错误

C.第4)行代码有编译错误

D.第5)行代码有编译错误

20.

(单选题)关于下列代码说法正确的是:

()。

publicinterfaceA{

publicvoiddoSomething(Stringthing);

}

interfaceB{

}

interfaceCextendsA,B{

}

interfaceD{

publicvoiddoIt(Stringthing);

}

classAImplimplementsC,D{

publicvoiddoSomething(Stringmsg){}

publicvoiddoIt(Stringthing){}

}

A.所有类和接口都编译成功

B.接口A编译失败

C.类AImpl编译失败

D.接口C编译失败

21.关于类、抽象类和接口,以下说法正确的是()

A.接口可以继承多个接口

B.抽象类不能实现接口

C.一个类只能继承一个类,但可以实现多个接口

D.抽象类实现接口,可以不实现接口的方法

 

22.(单选题)关于下列代码说法正确的是:

()。

publicclassCell{

privatefinalintid;

publicCell(intid){

this.id=id;

}

publicvoidupdateId(intid){

this.id=id;

}

publicstaticvoidmain(String[]args){

Cellcell=newCell(1001);

cell.updateId(1002);

System.out.println(cell.id);

}

}

A.编译错误

B.运行时异常抛出

C.运行后,cell对象属性id的值没有改变,仍然是1001

D.运行后,cell对象属性id的值改变成新的值1002

23、(单选题)下列选项中,不属于Java的访问控制修饰符的是:

()。

A.private

B.protected

C.friendly

D.public

24.下面关于变量的说法正确的是()

A.实例变量可以通过类名直接调用

B.类变量可以通过类名直接调用

C.Java中的参数传递都是值传递

D.在不同的作用域不能定义相同的变量

25.

(单选题)下面关于import,class和package的声明顺序正确的是:

()。

A.package,import,class

B.class,import,package

C.import,package,class

D.package,class,import

26.下列代码有编译错误的是第()行

1)publicclassTest{

2)publicstaticvoidmain(String[]args){

3)int[]arr1=newint[12];

4)char[]arr2=newchar[];

5)int[]arr3={};

6)Object[]obj=newObject[4];

7)Objectobj1=newobject[9];

8)}

9)}

A.5)

B.5)7)

C.4)7)

D.4)

27.(多选题)有一个名为Product的类,下列方法中属于该类的构造方法的是:

()。

A.publicProduct(){}

B.publicProduct(Stringname){}

C.publicvoidProduct(){}

D.publicvoidProduct(Stringname){}

28.下列代码的运行结果是()

publicclassTest{

privateintnum;

privatestaticTesttest;

publicTest(intnum){

this.num=++num;

}

static{

intnum=16;

test=newTest(num);

++test.num;

}

publicstaticvoidmain(String[]args){

test=newTest(13);

System.out.println(test.num);

}

}

A.14

B.15

C.16

D.17

29.(多选题)请看下列代码:

publicclassTetromino{

protectedintmove(intx){

return0;

}

}

classTextendsTetromino{

<插入代码>

}

在<插入代码>处填入选项中的代码,使T类没有编译错误的是:

()。

A.publicintmove(intx){return0;}

B.privateintmove(intx){return0;}

C.privateintmove(longx){return0;}

D.protectedlongmove(intx){return0;}

30.仔细分析下列代码,请指出错误的行()。

publicclassSomeThing{

privateStringstr;

publicintaddOne(finalintx){

return++x;

}

}

A.publicclassSomeThing

B.privateStringstr;

C.publicintaddOne(finalintx)

D.return++x;

 

31.(多选题)下列关于JVM的内存结构描述正确的是:

()。

A.类的各种信息在堆中保存

B.栈用于存放程序运行过程当中所有的局部变量

C.堆一般用于存储使用new关键字创建的对象

D.类是JVM的内存结构

32.下列代码的运行结果是()

publicstaticvoidmain(String[]args){

Stringstr="420";

str+=42;

System.out.print(str);

}

A.42

B.420

C.462

D.42042

33.(多选题)请看下列代码:

publicclassFoo{

staticvoidalpha(){/*morecodehere*/}

voidbeta(){/*morecodehere*/}

}

下列说法正确的是:

()。

A.Foo.beta()是调用beta方法的正确方式

B.Foo.alpha()是调用alpha方法的正确方式

C.beta方法可以直接调用alpha方法

D.alpha方法可以直接调用beta方法

34.查看如下代码:

publicclassFoo{

publicvoidmethod(Stringstr,intage){}

}

下列选项中,和Foo类中method方法重载的方法是()。

A.publicintmethod(Stringstr,intage){}

B.publicvoidmethod(intyear,Strings){}

C.publicintmethod(intyear,Strings){}

D.publicintmethod(Stringstr){}

35.下列代码的输出结果是:

()。

publicclassStaticFoo{

intnum;

staticintx;

publicstaticvoidmain(String[]args){

StaticFoofoo1=newStaticFoo();

foo1.num++;

foo1.x++;

StaticFoofoo2=newStaticFoo();

foo2.num++;

foo2.x++;

StaticFoofoo3=newStaticFoo();

foo3.num++;

foo3.x++;

StaticFoo.x++;

System.out.print(foo3.num+",");

System.out.println(foo3.x);

}

}

A.3,3

B.1,3

C.3,4

D.1,4

36.下面关于interface,叙述错误的是:

()

A.一个interface可以继承多个interface

B.接口中的方法可以由private修饰

C.interface中可以定义staticfinal常量

D.interface中可以

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1