2Java面向对象知识测试含答案.docx
《2Java面向对象知识测试含答案.docx》由会员分享,可在线阅读,更多相关《2Java面向对象知识测试含答案.docx(11页珍藏版)》请在冰豆网上搜索。
![2Java面向对象知识测试含答案.docx](https://file1.bdocx.com/fileroot1/2023-1/7/851e6146-b3fb-4a1c-bcf3-ef7f96e71180/851e6146-b3fb-4a1c-bcf3-ef7f96e711801.gif)
2Java面向对象知识测试含答案
单选题:
(每道题目2分)
1:
下列有关类、对象和实例的叙述,正确的是哪一项?
()
A.类就是对象,对象就是类,实例是对象的另一个名称,三者没有差别
B.对象是类的抽象,类是对象的具体化,实例是对象的另一个名称
C.类是对象的抽象,对象是类的具体化,实例是类的另一个名称
D.类是对象的抽象,对象是类的具体化,实例是对象的另一个名称
2:
类Student中成员变量声明正确的是哪一项?
()
A.classStudent
{
name;
age;
}
B.classStudent
{
Stringname=1.0;
intage=“26”;
}
C.classStudent
{
Stringname;
intage;
}
D.classStudent
{
Stringname,intage;
}
3:
类Student中成员方法声明正确是哪一项?
()
A:
classStudent
{
publicshow(){}
}
B:
classStudent
{
publicvoidshow();
}
C:
classStudent
{
publicvoidshow(){}
}
D:
classStudent
{
show(){}
}
4:
类Student中构造方法声明正确的是哪一项?
()
A:
classStudent
{
publicStudent()
}
B:
classStudent
{
publicStudent(){}
}
C:
classStudent
{
publicvoidStudent(){}
}
D:
classStudent
{
newStudent(){}
}
5:
下列哪一项不是面向对象的三大特征之一?
()
A:
封装
B:
抽象
C:
继承
D:
多态
6:
下列关于封装说法不正确的是?
()
A:
封装可以提高代码的安全性。
B:
封装是指隐藏实现细节,提高公共的访问方式。
C:
类或者方法也是封装的一种体现。
D:
仅仅private修饰的内容才是封装的体现。
7:
下列哪个方法和intsum(inta,intb)是重写方法?
()
A:
publicvoidsum(inta,intb)
B:
publicintsum(inta,intb)
C:
intsum(inta,intb,intc)
D:
voidsum(intc,intb)
8:
下列程序的运行结果是:
()
classTest
{
privatestaticintx=10;
publicvoidshow(intx)
{
x++;
System.out.println(x);
}
publicstaticvoidmain(String[]args)
{
intx=20;//局部变量覆盖成员变量
Testt=newTest();
t.show(x);
}
}
A:
10
B:
21
C:
11
D:
20
9:
在子类中调用父类中被重写的方法时需要使用哪个关键字?
()
A.this
B.new
C.super
D.以上都不是
10:
如果想一个类不能被子类继承的话,用下列哪个修饰符?
()
A:
static
B:
abstract
C:
private
D:
final
11:
有如下两个类,在main方法中下面哪个做法是错误的?
()
classAnimal{}
classDogextendsAnimal{}
A:
Animala=newAnimal();
B:
Dogd=newDog();
C:
Animala=newDog();
D:
Dogd=newAnimal();
12:
下列有关抽象类的叙述正确的是哪项?
()
A:
抽象类中一定含有抽象方法
B:
抽象类既能被实例化也能被继承
C:
抽象类的声明必须包含abstract关键字
D:
抽象类中不能有构造方法
13:
下列有关接口的叙述错误的是哪项?
()
A:
接口中只能包含抽象方法和常量
B:
一个类可以实现多个接口
C:
具体类实现接口时必须实现其中的方法
D:
接口不能被继承
14:
下列程序的运行结果是:
()
classFu
{
publicintnum=10;
}
classZiextendsFu
{
publicintnum=20;
}
classTest
{
publicstaticvoidmain(String[]args)
{
Fuf=newZi();
System.out.println(f.num);
Ziz=(Zi)f;
System.out.println(z.num);
}
}
A:
10,10
B:
20,20
C:
10,20
D:
20,10
15:
下列程序的运行结果是:
()
classFu
{
publicvoidshow()
{
System.out.println("fushow");
}
}
classZiextendsFu
{
publicvoidshow()
{
System.out.println("zishow");
}
publicvoidmethod()
{
System.out.println("zimethod");
}
}
classTest
{
publicstaticvoidmain(String[]args)
{
Fuf=newZi();
f.method();
}
}
A:
fushow
B:
zishow
C:
编译报错
D:
zimethod
16:
关于代码块说法错误的是?
()
A:
静态代码块在类加载的时候执行一次,在创建对象的时候不在执行了。
B:
构造代码块每次创建对象的时候都会执行。
C:
局部代码块是为了限定变量的生命周期。
D:
以上说法都不对
17:
Math类中的方法publicstaticintround(float f),不能接受下面哪种类型的参数:
A:
byte
B:
int
C:
long
D:
double
18:
关于抽象类和接口,以下那个说法有问题:
()
A:
一个类只能继承一个抽象类,但可以实现多个接口
B:
抽象类中可以没有抽象方法,接口中所有方法必须抽象
C:
抽象类中的方法默认是公有的,接口中方法默认是抽象的
D:
抽象类和接口都可以作为函数的形参类型使用,调用时传入子类对象
19:
关于内部类说法错误的是()
A:
内部类不能定义在局部位置。
B:
内部类可以定义在成员位置。
C:
成员内部类可以用private和static修饰。
D:
局部内部类只能访问被final修饰的局部变量。
20:
下列程序的运行结果是:
()
classA
{
publicvoidshow()
{
show2();
}
publicvoidshow2()
{
System.out.println("我");
}
}
classBextendsA
{
publicvoidshow2()
{
System.out.println("爱");
}
}
classCextendsB
{
publicvoidshow()
{
super.show();
}
publicvoidshow2()
{
System.out.println("你");
}
}
publicclassForDemo
{
publicstaticvoidmain(String[]args)
{
Aa=newB();
a.show();
Bb=newC();
b.show();
}
}
A:
爱,你
B:
我,爱
C:
我,你
D:
我,我
多选题:
(每道题目3分)
21:
关于静态方法,以下说法正确的是()
A、可以使用类名.方法名调用
B、可以使用对象.方法名调用
C、不能使用非静态成员
D、可以使用静态成员和非静态成员
22:
关于继承,以下说法正确的是:
A:
Java中只支持单继承,一个类只能继承一个类,但是可以有多个直接子类
B:
一个类如果没有自己写无参构造方法,那么子类将无法继承
C:
子类实例可以当父类实例用,父类实例不可以当子类实例用
D:
子类重写父类方法时访问权限不能更低
23:
关于abstract不能和哪些关键字共用正确的是()
A:
abstract不可以和private共用
B:
abstract不可以和static共用
C:
abstract不可以和final共用
D:
abstract不可以和public共用
24:
下列有关抽象方法叙述正确的是哪几项?
()
A:
包含抽象方法类的必须定义为抽象类
B:
抽象方法没有方法体
C:
抽象方法可以包含在任何类中
D:
包含抽象方法的类的具体子类必须提供具体的重写方法
25:
有如下代码,请问哪些是正确的?
()
classClassA{}
classClassBextendsClassA{}
classClassCextendsClassA{}
以及
ClassAp0=newClassA();
ClassBp1=newClassB();
ClassCp2=newClassC();
ClassAp3=newClassB();
ClassAp4=newClassC();
A:
p0=p1;
B:
p1=p2;
C:
p1=(ClassB)p3;
D:
p2=(ClassC)p4;
简答题:
(每道题目3分)
26:
什么是面向对象?
请举例说明。
27:
成员变量和局部的变量区别是什么?
28:
构造方法的特点是什么?
需要注意什么问题?
29:
方法重写是什么?
需要注意什么问题?
30:
抽象类和接口的区别是什么?
编程题:
(每道题目10分)
31:
写一个标准的学生类,包含如下内容:
成员变量:
name,age
构造方法:
无参构造,带两个参数的构造
成员方法:
getXxx()/setXxx()方法。
show()方法用于显示类的成员变量值。
32:
请用代码体现把大象装进冰箱的操作。
提示:
注意分析该操作中有哪些类,每个类有哪些方法。
然后在测试类中调用。
33:
有一只狗和一只猫。
他们都有睡觉的方法,都仅仅是睡觉。
他们都有运动的方法,狗爱跑步,猫爱跳高。
请用所学知识体现把上面的代码体现出来。
然后在测试类中进行测试。