java面向对象试题.docx
- 文档编号:23867036
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:23
- 大小:23.40KB
java面向对象试题.docx
《java面向对象试题.docx》由会员分享,可在线阅读,更多相关《java面向对象试题.docx(23页珍藏版)》请在冰豆网上搜索。
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中可以
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 面向 对象 试题