Java面向对象部分习题Java工程师.docx
《Java面向对象部分习题Java工程师.docx》由会员分享,可在线阅读,更多相关《Java面向对象部分习题Java工程师.docx(23页珍藏版)》请在冰点文库上搜索。
![Java面向对象部分习题Java工程师.docx](https://file1.bingdoc.com/fileroot1/2023-5/29/5ffb68d0-45d2-41b6-a209-9e1ab6e83f01/5ffb68d0-45d2-41b6-a209-9e1ab6e83f011.gif)
Java面向对象部分习题Java工程师
习题一
1:
下例说法()正确。
(2分)
A:
一个程序中可以包括多个类
B:
一个源文件中只能有一个类
C:
一个源文件中可以有多个公共类
D:
一个源文件只能供一个程序使用
2:
下面语句哪个是正确的()。
(2分)
A:
char='zdc';
B:
longl=oxfff;
C:
floatf=0.65;
D:
double=0.7E-2;
3:
对对象的理解错误的是()。
(2分)
A:
对象由属性和行为两部分组成。
B:
对象可以是一个人、地址、物品、事件、概念等。
C:
万事万物皆可看做对象。
D:
以上都不对
4:
如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏。
这时如果想在该方法内使用成员变量,必须使用关键字是()。
(2分)
A:
this
B:
final
C:
native
D:
super
5:
构造方法()被调用。
(2分)
A:
类定义时
B:
创建对象时
C:
调用对象方法时
D:
使用对象的变量时
6:
以下语句中有语法错误的是()。
(2分)
A:
for(;;);
B:
for(intI=0;I〈100;I++〉〔〕;
C:
if(a〈0〉a++;
D:
;;;
7:
Java与C/C++比较说法错误的是()。
(3分)
A:
Java不提供goto语句,所以也就没指定goto作为关键字。
B:
Java没有指针。
C:
Java没有联合和结构
D:
Java只有单继承没有多重继承。
8:
下列说法()是正确的。
(3分)
A:
程序执行到break语句是一定会结束所有的循环
B:
程序执行到continue语句时会结束当前循环
C:
break语句和continue语句都可以和标签协同使用
D:
continue语句和break语句的作用相同
9:
当编译和运行下列程序段时,会发生()。
classBase{}
classSubextendsBase{}
classSub2extendsBase{}
publicclassCEx{
publicstaticvoidmain(Stringargv[]){
Baseb=newBase();
Subs=(Sub)b;
}
}(3分)
A:
通过编译和并正常运行。
B:
编译时出现例外。
C:
编译通过,运行时出现例外。
D:
以上都不对
10:
关于接口()正确。
(3分)
A:
实现一个接口必须实现接口的所有方法
B:
一个类可以实现多个接口
C:
接口间不能有继承关系
D:
接口和抽象类是同一回事
11:
若需要定义一个类域或类方法,应使用()修饰符。
(3分)
A:
static
B:
package
C:
private
D:
public
12:
Java中对象的清除,正确的说法是()。
(2分)
A:
Java用析构方法来清除对象
B:
Java用free()方法来释放内存
C:
java用delete()来释放内存
D:
Java运行时系统通过垃圾收集周期性地释放无用对象所使用的内存,完成对象的清除
13:
Java变量中,以下不属于复合类型的数据类型是()。
(2分)
A:
类
B:
字符型
C:
数组型
D:
接口
14:
JAVA程序经常用到“递归”,“递归”的基本思想是()。
(2分)
A:
让别人反复调用自己”
B:
.“自己反复调用别人”
C:
.“自己反复调用自己”
D:
以上说法都不对
15:
以下说法正确的是()。
(2分)
A:
每个Java类都至少有一个构造方法,如果没有则机器自动生成一个默认的构造方法。
B:
如果类里定义了一个或多个构造方法,那么java也提供默认的构造方法
C:
每个Java类中用户必须定义至少一个构造方法。
D:
以上都不对
16:
有继承关系时用到的关键字是()。
(3分)
A:
extend
B:
extends
C:
implements
D:
implement
17:
Java编程所必须的默认引用包为()。
(3分)
A:
java.sys包
B:
java.lang包
C:
java.new包
D:
以上都不是
18:
对封装的理解正确的是()。
(3分)
A:
封装就是把对象的属性和行为结合成一个独立的单位。
B:
封装就是把对象完全隐蔽起来,不让外界访问。
C:
封装性是一个使用问题。
D:
封装和抽象是一回事。
19:
关于以下程序段,正确的说法是()。
Strings1=”abc”+”def”;
Strings2=newString(s1);
if(s1==s2)
System.out.println(“==succeeded”);
if(s1.equals(s2))
System.out.println(“.equals()succeeded”);(3分)
A:
程序将输出:
==succeeded
B:
程序将输出:
.equals()succeeded
C:
程序将输出:
==succeeded.equals()succeeded
D:
程序无输出
20:
类ABC定义如下:
1.publicclassABC{2.publicintmax(inta,intb){}3.4.}将以下()方法插入行3是不合法的。
(2分)
A:
publicfloatmax(floata,floatb,floatc){}
B:
publicintmax(intc,intd){}
C:
publicfloatmax(floata,floatb){}
D:
privateintmax(inta,intb,intc){}
21:
执行完代码int[]x=newint[25];后,以()说明是正确的。
(2分)
A:
x[24]为0
B:
x[24]未定义
C:
x[25]为0
D:
x[0]为空
22:
实现接口的关键字是()。
(2分)
A:
extends
B:
extend
C:
implements
D:
implement
23:
关于继承的说法正确的是()。
(2分)
A:
子类将继承父类所有的属性和方法
B:
子类继承父类的非私有属性和方法
C:
子类只继承父类public方法和属性
D:
子类只继承父类的方法,而不继承属性
24:
以下选项中循环结构合法的是()。
(2分)
A:
while(inti〈7){i++;System.out.println(“iis“+i);}
B:
intj=3;while(j){System.out.println(“jis“+j);}
C:
intj=0;for(intk=0;j+k!
=10;j++,k++){System.out.println(“jis“+j+“kis”+k);}
D:
intj=0;do{System.out.println(“jis“+j++);if(j==3){continueloop;}}while(j〈10);
25:
下面语句哪个是正确的()。
(2分)
A:
char='zdc';
B:
longl=oxfff;
C:
floatf=0.65;
D:
double=0.7E-2;
26:
给出下面代码:
publicclassPerson{
staticintarr[]=newint[10];
publicstaticvoidmain(Stringa[])
{
System.out.println(arr[1]);
}
}
()语句是正确的。
(2分)
A:
编译时将产生错误;
B:
编译时正确,运行时将产生错误;
C:
输出零
D:
输出空。
27:
有继承关系时用到的关键字是()。
(2分)
A:
extend
B:
extends
C:
implements
D:
implement
28:
下面()是java语言中的关键字。
(2分)
A:
sizeof
B:
abstract
C:
NULL
D:
Native
29:
以下()不是Java语言的特点。
(2分)
A:
简单性
B:
面向对象
C:
平台独立性
D:
指针的灵活性
30:
给出下面代码段
1)publicclassTest{
2)intm,n;
3)publicTest(){}
4)publicTest(inta){m=a;}
5)publicstaticvoidmain(Stringarg[]){
6)Testt1,t2;
7)intj,k;
8)j=0;k=0;
9)t1=newTest();
10)t2=newTest(j,k);
11)}
12)}
()将引起一个编译时错误。
(3分)
A:
line3
B:
line5
C:
line6
D:
line10
31:
关于对象成员占用内存的说法()是正确的。
(3分)
A:
同一个类的对象共同用一段内存
B:
同一个类的对象使用不同一段内存,但静态成员共享相同的内存空间
C:
对象的方法不占用内存
D:
以上都不对
32:
在使用interface声明一个接口时,只可以使用()修饰符修饰该接口。
(2分)
A:
public
B:
protected
C:
privateprotected
D:
private
33:
有以下方法的定义,请选择该方法的返回类型为()。
intmethod(bytex,floaty){return(short)x/y*2;}(2分)
A:
byte
B:
short
C:
int
D:
float
34:
属于访问控制的关键字是()。
(2分)
A:
static
B:
final
C:
abstract
D:
private
35:
下列运算结果默认为float的是()。
(2分)
A:
100/10
B:
100*10
C:
100F+10
D:
100D-10
36:
面向对象的的方法与面向过程的方法最大的不同在于()。
(2分)
A:
以功能为中心
B:
以数据为中心
C:
以功能和数据为中心
D:
以事件驱动为中心
37:
Java变量中,以下不属于复合类型的数据类型是()。
(2分)
A:
类
B:
字符型
C:
数组型
D:
接口
38:
下列说法正确的是()。
(2分)
A:
编译后的Java源程序根据文件中定义的类和接口的个数产生相应个数的.class字节码文件。
B:
Java语言的源文件中不是任何地方都可以加注释的。
C:
一个文件中可以有多个访问权限为public的类。
D:
含有main()方法的类可以为public的类,也可以为其他类。
39:
编写Java应用程序文件的扩展名为()。
(2分)
A:
java
B:
class
C:
html
D:
exe
40:
关于对象成员占用内存的说法()是正确的。
(2分)
A:
同一个类的对象共同用一段内存
B:
同一个类的对象使用不同一段内存,但静态成员共享相同的内存空间
C:
对象的方法不占用内存
D:
以上都不对
41:
纯面向对象的语言有()。
(3分)
A:
C
B:
C++
C:
Java
D:
Pascal
42:
下面有关main()方法声明时,可以改动的是()。
(3分)
A:
public
B:
static
C:
void
D:
args
43:
this和super()。
(3分)
A:
都可以用在main()方法中
B:
都是指一个内存地址
C:
不能用在main()方法中
D:
意义相同
44:
关于以下application的说明,正确的是()。
1.classStaticStuff2.{3.staticintx=10;4.static{x+=5;}5.publicstaticvoidmain(Stringargs[])6.{7.System.out.println(“x=”+x);8.}9.static{x/=3;}10.}(3分)
A:
4行与9行不能通过编译,因为缺少方法名和返回类型
B:
9行不能通过编译,因为只能有一个静态初始化器
C:
编译通过,执行结果为:
x=5
D:
编译通过,执行结果为:
x=3
45:
有以下程序片段,下列()选项不能插入到行1。
1.2.publicclassA{3.//dosth4.}(2分)
A:
publicclassMainClass{}
B:
packagemine;
C:
classANotherClass{}
D:
importjava.util.*;
46:
以下说法正确的是()。
(2分)
A:
每个Java类都至少有一个构造方法,如果没有则机器自动生成一个默认的构造方法。
B:
如果类里定义了一个或多个构造方法,那么java也提供默认的构造方法
C:
每个Java类中用户必须定义至少一个构造方法。
D:
以上都不对
47:
对于抽象方法下列说法正确的是()。
(2分)
A:
对抽象方法只需声明,而不需要具体的内容。
B:
对于抽象方法声明格式中,可以有空的方法体{}。
C:
构造方法也可以定义为抽象方法。
D:
抽象方法可以出现在非抽象类中。
48:
纯面向对象的语言有()。
(2分)
A:
C
B:
C++
C:
Java
D:
Pascal
49:
有继承关系时用到的关键字是()。
(2分)
A:
extend
B:
extends
C:
implements
D:
implement
50:
关于接口()正确。
(3分)
A:
实现一个接口必须实现接口的所有方法
B:
一个类可以实现多个接口
C:
接口间不能有继承关系
D:
接口和抽象类是同一回事
51:
在调用构造函数时()(3分)
A:
子类可以不加定义就使用父类的所有构造函数
B:
不管类中是否定义了何种构造函数,创建对象时都可以使用默认构造函数
C:
先调用父类的构造函数
D:
先调用形参多的构造函数
52:
Java的字符类型采用的是Unicode编码方案,每个Unicode码占用()个比特位。
(2分)
A:
8
B:
16
C:
32
D:
64
53:
有语句Strings=”helloworld”;,以下操作()是不合法的。
(2分)
A:
s〉〉〉=1;
B:
inti=s.length();
C:
Stringts=s.trim();
D:
Stringt=s+”!
”;
54:
以下说法正确的是()。
(2分)
A:
package语句作为Java源文件的第一条语句。
B:
import语句作为Java源文件的第一条语句。
C:
package语句作为Java源文件的类中的一条语句。
D:
import语句作为Java源文件的类中的一条语句
55:
给出下面代码:
publicclassPerson{
staticintarr[]=newint[10];
publicstaticvoidmain(Stringa[])
{
System.out.println(arr[1]);
}
}
()语句是正确的。
(2分)
A:
编译时将产生错误;
B:
编译时正确,运行时将产生错误;
C:
输出零
D:
输出空。
56:
给出下面代码段
1)publicclassTest{
2)intm,n;
3)publicTest(){}
4)publicTest(inta){m=a;}
5)publicstaticvoidmain(Stringarg[]){
6)Testt1,t2;
7)intj,k;
8)j=0;k=0;
9)t1=newTest();
10)t2=newTest(j,k);
11)}
12)}
()将引起一个编译时错误。
(2分)
A:
line3
B:
line5
C:
line6
D:
line10
57:
下面有关main()方法声明时,可以改动的是()。
(2分)
A:
public
B:
static
C:
void
D:
args
58:
纯面向对象的语言有()。
(2分)
A:
C
B:
C++
C:
Java
D:
Pascal
59:
关于对象成员占用内存的说法()是正确的。
(3分)
A:
同一个类的对象共同用一段内存
B:
同一个类的对象使用不同一段内存,但静态成员共享相同的内存空间
C:
对象的方法不占用内存
D:
以上都不对
60:
下列关于修饰符混用的说法,错误的是()。
(3分)
A:
abstract不能与final并列修饰同一个类
B:
abstract类中不可以有private的成员
C:
abstract方法必须在abstract类中
D:
static方法中能处理非static的属性
61:
看下面一段程序:
classAclass{
voidgo()
{ System.out.println("Aclass");
}
}
publicclassBclassextendsAclass{
voidgo()
{ System.out.println("Bclass");
}
publicstaticvoidmain(Stringargs[]){
Aclassa=newAclass();
Aclassa1=newBclass();
a.go();
a1.go();
}
}
以上程序运行结果是()。
(3分)
A:
Aclass Aclass
B:
Bclass Bclass
C:
Aclass Bclass
D:
Bclass Aclass
62:
java中定义数组名为abc,下面()可以得到数组元素的个数。
(3分)
A:
abc.length()
B:
abc.length
C:
len(abc)
D:
ubound(abc)
多选题
1:
下列()说法是正确的。
(2分)
A:
Java语言只允许单一继承
B:
Java语言只允许实现一个接口
C:
Java语言不允许同时继承一个类并实现一个接口
D:
Java语言的单一继承使得代码更加可靠
2:
定义一个类名为"MyClass.java"的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为()。
(2分)
A:
privateclassMyClassextendsObject
B:
classMyClassextendsObject
C:
publicclassMyClass
D:
publicclassMyClassextendsObject
3:
关于Float,下列说法正确的是()。
(2分)
A:
Float是一个类
B:
Float在java.lang包中
C:
Floata=1.0是正确的赋值方法
D:
Floata=newFloat(1.0)是正确的赋值方法
4:
继承是面向对象编程的一个主要优点之一,继承有()几点好处。
(2分)
A:
它可以利用已有的类来创建自己的类,只需要指出自己的类和已有的其他的类有什么不同即可,而且还可以动态访问其他有关的类中的信息
B:
通过继承,可以利用Java类库所提供的丰富而有用的类,这些类都已经被很好地实现。
C:
当设计很大的程序时,继承可以使程序组织得更加层次清晰,有利于程序设计和减少错误的发生。
D:
以上都对。
5:
类与对象的关系是()。
(2分)
A:
类是对象集合的再抽象。
B:
类(Class)是具有相同属性和行为的一组对象的集合。
C:
一个对象称作类的一个实例。
D:
类与对象是父与子的关系。
6:
main()方法是应用程序的入口,它前面的()关键字不能改变。
(2分)
A:
public
B:
static
C:
void
D:
以上关键字都可改变
7:
类与对象的关系是()。
(2分)
A:
类是对象集合的再抽象。
B:
类(Class)是具有相同属性和行为的一组对象的集合。
C:
一个对象称作类的一个实例。
D:
类与对象是父与子的关系。
8:
可以修饰类的修饰符有()。
(2分)
A:
public
B:
final
C:
abstract
D:
protected
9:
接口A的定义如下,指出下列()类实现了该接口。
interfaceA{
intmethod1(inti);
intmethod2(intj);
}(3分)
A:
classBimplementsA{
intmethod1(){}
intmethod2(){
}
}
B:
classBimplementsA{
intmethod1(inti){}
intmethod2(intj){}
}
C:
classB{
intmethod1(inti){}
intmethod2(intj){}
}
D:
classBimplementsA{
intmethod2(intj){}
intmethod1(inti){}
}
10:
属于面向对象的语言有()。
(2分)
A:
C
B:
Pascal
C:
Java
D:
C++
11:
类与对象的关系是()。
(2分)
A:
类是对象集合的再抽象。
B:
类(Class)是具有相同属性和行为的一组对象的集合。
C:
一个对象称作类的一个实例。
D:
类与对象是父与子的关系。
12:
下列程序的错误有()。
finalclassFirst{
privateinta=1;
intb=2;
}
classSecondextendsFirst{
publicvoidmethod(){
System.out.println(a+b);
}
}(2分)
A:
println()参数应为字符串,因此此处不能调用该方法
B:
因为变量a是private,所以在其他类中不能访问a
C:
Second不能继承First。
D:
关键字final不能修饰类
13:
下列类定义中()是合法的抽象类定义。
(3分)
A:
abstractA{abstract