Java面向对象编程知识笔试面试选择题.docx
《Java面向对象编程知识笔试面试选择题.docx》由会员分享,可在线阅读,更多相关《Java面向对象编程知识笔试面试选择题.docx(11页珍藏版)》请在冰点文库上搜索。
![Java面向对象编程知识笔试面试选择题.docx](https://file1.bingdoc.com/fileroot1/2023-5/21/1d70fb04-caf9-4c24-92a3-cb7cfac411f6/1d70fb04-caf9-4c24-92a3-cb7cfac411f61.gif)
Java面向对象编程知识笔试面试选择题
Java面向对象编程知识笔试面试选择题
问题:
Java面向对象编程知识笔试面试选择题回答:
1.在面向对象编程中,一个类型由什么组成?
()
Apublic
Bidentifier
Cdata
Doperations
2.下面哪些是面向对象的基本特性:
()
A多态
B继承
C封装
D接口
3.在java中访问权限的限制由严格到宽松依次是:
()
Apublic
Bprotected
Cprivate
Ddefault(nomodifier)
4.以下方法声明正确的有:
()
ApublicstaticsynchronizedvoidwriteLog(Stringmsg)
BsynchronizedpublicstaticwriteLog(Stringmsg)
CpublicfinalabstractvoidwriteLog(Stringmsg)
DfinalpublicvoidwriteLog(Stringmsg)
EabstractsynchronizedvoidwriteLog(Stringmsg)
5.Java方法的参数传递对于基本数据类型如int,byte等,参数传递是C;对自定义数据类型,参数传递是:
()
Abyreference
Bbypointer
Cbyvalue
Dbyaddress
6.有如下程序:
publicclassArugmentTest{
staticclassIntA{
privateinta;
publicIntA(inta){
this.a=a;
}
publicintgetA(){
returna;
}
publicvoidsetA(inta){
this.a=a;
}
}
staticpublicvoidchange(inta){
a=3;
}
staticpublicvoidchange(IntAa){
a.setA(3);
}
staticpublicvoidchangeRef(IntAa){
a=newIntA(9);
}
publicstaticvoidmain(String[]args){
inta=2;
change(a);
System.out.print(a);
IntAia=newIntA(5);
change(ia);
System.out.print(ia.getA());
changeRef(ia);
System.out.println(ia.getA());
}
}
请问在控制台上输出的是:
()
A233
B333
C259
D339
7.下面程序出错的有哪些行?
()
1)classStudent{
2)privateStringname;privateintage;
3)publicStudent(){}
4)publicvoidsetName(Stringname){this.name=name;}
5)voidsetAge(intage){this.age=age;}
6)}
7)publicclassStudentTest{
8)publicvoidstaticmain(String[]args){
9)Students=newStudent();
10)s.name=“Hellen”;
11)s.setAge(20);
12)}
13)}
A1)
B4)
C8)
D10)
8.方法重载(overloading)必须满足:
()
A在不同class中定义的方法
B在同一类型中定义的方法
C方法名必须相同
D返回类型必须相同
E参数一定不同
F参数可以相同
9.对于构造方法(constructor)描述正确的有:
()
A构造方法没有返回类型
B构造方法一定是public的方法
C如果我们没有显示定义构造方法,系统会提供一个缺省的
D构造方法不能重载
10.下列说法正确的是:
()
AJAVA语言允许多继承
B构造函数只能是public的
CJAVA中只有单继承
D必须要提供构造函数
11.显示调用父类型的构造方法是通过调用什么来完成的?
()
Aconstructor
Cmethods
Cfields
Dsuper
12.以下对于方法覆盖(overriding)的说法正确的有:
()
A方法覆盖发生在同一类中
B方法的覆盖发生在子类型中
C方法名一定要一样
D参数一定要一样
E返回类型可以不一样
F访问权限只能一样
G如有异常,子类型中抛出的异常与父类型中的一致或是其子类型
H静态方法可以被静态方法覆盖
13.请看以下程序:
classVehicle{
publicvoiddrive(){
System.out.println(Vehicle:
drive);
}
}
classCarextendsVehicle{
publicvoiddrive(){
System.out.println(Car:
drive);
}
}
publicclassTest{
publicstaticvoidmain(Stringargs[]){
Vehiclev;
Carc;
v=newVehicle();
c=newCar();
v.drive();
c.drive();
v=c;
v.drive();
}
}
以下描述正确的有:
()
A对于语句v=c;会导致编译错误
B对于语句v=c;会导致运行错误
C运行输出:
Vehicle:
drive
Car:
drive
Car:
drive
D运行输出:
Vehicle:
drive
Car:
drive
Vehicle:
drive
14.如下程序:
publicclassStaticTest{
static{
System.out.println(Hithere);
}
publicvoidprint(){
System.out.println(Hello);
}
publicstaticvoidmain(Stringargs[]){
StaticTestst1=newStaticTest();
st1.print();
StaticTestst2=newStaticTest();
st2.print();
}
}
什么时候字符串“Hithere”会输出?
()
A永远都不会输出
B创建st1和st2时
C第一次将StaticTest类型装载进内存时
D显示调用print方法时
15.innerclass的类型有:
()
Amemberinnerclass
Bstaticinnerclass
Clocalinnerclass
Danonymousinnerclass
Epublicinnerclass
Fglobalinnerclass
参考答案:
ABCD
16.一个匿名内部类有可能是:
()
A继承其他的类
B实现了某一接口
C定义了构造方法
D可以使用成员变量
17.下面的几个方法,不能和publicvoidmethodA(intarg){}构成重载(Overload)的有:
()
ApublicintmethodA(intarg){}
BpublicvoidmethodA(Stringarg){}
CpublicvoidmethodA(intarg1,intarg2){}
DpublicvoidmethodB(intarg){}
EpublicvoidmethodA(intpara){}
18.请看如下代码:
classEnclosingOne{
publicclassInsideOne{}
}
publicclassInnerTest{
publicstaticvoidmain(Stringargs[]){
EnclosingOneeo=newEnclosingOne();
_______________________
}
}
从下面选一段代码插入到上面的横线出不会报错的是:
()
AInsideOneei=eo.newInsideOne();
Beo.InsideOneei=eo.newInsideOne();
CInsideOneei=EnclosingOne.newInsideOne();
DInsideOneei=eo.newInsideOne();
EEnclosingOne.InsideOneei=eo.newInsideOne();
19.下列陈述错误的有哪些:
()
A在Java中类只允许单一继承
B在Java中一个类只允许实现一个接口
C在Java中一个接口只能继承一个接口
D在Java中类不能同时继承一个类和实现一个接口
20.请看如下代码:
publicclassFather{
inti=10;
publicstaticvoidmain(String[]args){
Fathero1=newFather();
System.out.println(o1.i);
Fathero2=newSon();
System.out.println(o2.i);
Sono3=newSon();
System.out.println(o3.i);
}
}
classSonextendsFather{
inti=20;
}
以上代码输出结果是:
()
A102020
B101010
C101020
21.下面哪些语句会被正确编译?
()
AFilef=newFile(/,autoexec.bat);
BDataInputStreamd=newDataInputStream(System.in);
COutputStreamWritero=newOutputStreamWriter(System.out);
DRandomAccessFiler=newRandomAccessFile(OutFile);
22.以下描述正确的有:
()
Afinalclass不能被继承
Bfinal变量不能被修改
Cfinal成员变量可以在构造方法中赋值
Dfinal方法不能被覆盖(overriden)
23.以下描述正确的有:
()
Aabstractclass一定有abstractmethod(s)
Babstractclass可以没有abstractmethod(s)
C定义abstractclass的目的是为了被继承
Dinterface中定义的方法全是abstractmethods
Einterface中定义的变量全部是finalstatic变量
24.请看如下代码段:
1)classSuper{
2)publicfloatgetNum(){
3)return3.0f;
4)}
5)}
6)
7)publicclassSubextendsSuper{
8)_____________
9)}
下面哪个方法放在第8行会产生一个编译错误?
()
ApublicfloatgetNum(){return4.0f;}
BpublicvoidgetNum(){}
CpublicvoidgetNum(doubled){}
DpublicdoublegetNum(floatd){return4.0d;}