JAVA期末复习资料194722.docx
《JAVA期末复习资料194722.docx》由会员分享,可在线阅读,更多相关《JAVA期末复习资料194722.docx(37页珍藏版)》请在冰豆网上搜索。
JAVA期末复习资料194722
Java期末复习题
一、判断题
1、在main方法中可以直接调用非静态的方法。
(F)
2、方法重载就是一个类中有多个同名但有不同形参和方法体的方法。
(T)
3、一个Java源程序可有多个类,但只仅有一个public类,而且源程序名与public类名相同。
(T)
4、Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。
(T)
5、方法中的形参可以和方法所属类的属性同名。
(T)
6、Java类中不能存在同名的两个成员函数。
(F)
//可以存在同名的方法,但是参数不能相同,这样的关系体现了Java中的多态(重载)
7、可以用new来创建一个类的实例,即“对象”。
(T)
8、Java中类的构造函数只能有一个。
(F)
//错误,可以重载.如果没有,会默认生成xxx()
9、类的静态变量被该类的所有对象共享。
(T)
10、不管定义与否,任何类都有一个不带参数的构造方法。
(F)
11、一个类可以访问另一个类的私有成员。
(F)
12、构造方法没有返回值,因此在定义构造方法时,其返回值类型必须声明为void。
(F)
13、对于类变量,可以通过类名直接访问,也可以通过该类的对象访问。
(T)
14、构造方法的名字必须与类名相同。
(T)
15、一个类的私有变量可以在同一个包的不同类中使用。
(F)
16、实例变量不能在类方法中直接引用,而类变量可以在实例方法中直接引用。
(T)
17、抽象类可有构造方法,因此也能用new进行实例化。
(F)
18、一个类可继承多个父类,实现多个接口。
(F)
19、用final修饰的类不能被继承。
(T)
20、接口中的成员变量全部为常量,方法为抽象方法。
(T)
21、接口无构造器,不能有实例,也不能定义常量。
(F)
22、java的类不允许嵌套定义。
(F)
23、在接口中所有的方法都是抽象方法,所以必须在方法定义之前加上abstract关键字(F)
24、抽象类中不能包含final修饰的方法。
(T)
25、子类可以继承父类所有的成员变量及成员函数。
(F)
26、接口可以被另一个接口继承。
(T)
27、接口中只能定义符号常量和抽象方法。
(T)
28、final类不能派生子类,final方法不能被覆盖。
( T )
29、如果类A的一个方法m的访问权限是默认的,则m可以被同一个包中的其他类访问,也可以被其它包中A的子类访问。
( F )
30、所有的类都可以被继承。
( F )
31、java中是单继承,但一个类可以实现多个接口。
( T )
32、如果一个类中包含抽象方法,则这个类也必须定义为抽象类。
( T )
33、如果在子类中改写从父类继承的方法,则子类中定义的访问权限不能低于父类中该方法的访问权限。
( T )
34、一个接口中的所有方法都是抽象的。
(T)
35、一个抽象的类不能直接用new命令创建对象。
( T )
36、一个子类中可以定义与父类中名字相同,而参数不同的方法,此时子类的方法会改写从父类继承来的方法。
( F )
//重写的条件是子类定义的方法和父类的方法有相同的方法名,相同的参数列表,以及相同的返回值,显然问题不符合以上条件,所以错误
37、JFrame,JPanel,JApplet和JButton四种组件都属于容器组件。
(F)
38、BorderLayout是面板的缺省布局管理器。
(F)
39、BorderLayout最多可以使用5个组件。
(T)
40、一个面板(JPanel)不能被加入另一个面板(JPanel)中。
(F)
41、菜单需要一个JMenuBar对象,以使他们能被添加到JFrame。
(T)
42、标签(JLabel)可以在屏幕上显示一个字符或一幅图片。
(T)
43、BorderLayout是容器javax.swing.JFrame默认的布局管理器。
(T)
44、JTextArea可以用来接收多行文本的输入。
(T)
45、在Java坐标系统中,X值从左向右增加。
(T)
46、BorderLayout布局管理器把组件排列在北、南、东、西和中间区域。
(T)
47、边界布局管理器(BorderLayout)把容器分成5个区域,每个区域只能放一个组件。
(T)
48、一个组件可以注册一个或多个事件监听器。
( T )
二、选择题
1、以public修饰的类如:
publicclassfish{…}则fish(A)
A)可被其它程序包中的类使用B)仅能被本程序包中的类使用
C)不能被任意其它类使用D)不能被其它类继承
2、下述哪个说法是不正确的?
(A)
A)局部变量在使用之前无需初始化,因为有该变量类型的默认值
B)类成员变量由系统自动进行初始化,无需初始化
C)参数的作用域就是所在的方法
D)for语句中定义的变量,当for语句执行完时,该变量就消亡了
3、使用如下哪个保留字可以使只有在定义该类的包中的其他类才能访问该类?
(D)
A、abstractB、privateC、protectedD、不使用保留字
4、Java源文件和编译后的文件扩展名分别为(B)
A).class和.javaB).java和.class
C).class和.classD).java和.java
5、下列说法中,不正确的是(A)
A)一个java源程序编译通过后,得到的结果文件数也只有一个。
B)一个java源程序经过编译后,得到的文件的扩展名一定是.class。
C)一个java源程序只能有一个publicclass类定义,且源文件的名字与publicclass的类名相同,扩展名必须是.java。
D)一个java源程序可以包含多个类。
6、System.out.print(“1”+2)打印到屏幕的结果是(B)
A)3B)12C)1+2D)4
7、假设intx=4,y=100,下列语句的循环体共执行几次?
(B)
while(y/x>3){
if(y%x>3){
x=x+1;
}
else{
y=y/x;
}
}
A)1次B)2次C)3次D)4次
8、下列说法中,不正确的是(D)
A、一个java源程序文件中,只能有一个public类。
B、一个java源程序文件中,只能有一个package语句。
C、一个java源程序文件中,可以有多个import语句。
D、一个java源程序文件中,只能有一个类中可以有main方法。
9、阅读下列代码段,选出该代码段的正确的文件名(D)。
classA{
voidmethodl(){
System.out.println(”methodlinclassA”):
}
}
publicclassB
voidmethod2(){
System.out.println(”method2inclassB”):
}
publicstaticvoidmain(Stringargs[]){
System.out.println(”main()inclassB”):
}
}
A、A.javaB、A.classC、B.classD、B.java
10、编译下面源程序会得到哪些文件?
(C)
classA1{
}
classA2{
}
PublicclassB{
Publicstaticvoidmain(Stringargs[]){
}
}
A、只有B.class文件B、只有A1.Class和A2.class文件
C、有A1.class、A2.Class和B.class文件D、编泽不成功
11、关于方法main()的说法哪个正确?
( C)
A.方法main()只能放在公共类中
B.main()的头定义可以根据情况任意更改
C.一个类中可以没有main()方法
D.所有对象的创建都必须放在main()方法中
12、下列关于类、包和源文件的描述中,不正确的一项是(D)。
A、一个包可以包含多个类B、一个源文件中,可能有一个公共类
C、属于同一个包的类在默认情况下可以相互访问D、系统不会为源文件创建默认的包
13、下述哪一组方法,是一个类中方法重载的正确写法?
(A)
A、intaddValue(inta,intb){returna+b;}
floataddValue(floata,floatb){returna+b;}
B、intaddValue(inta,intb){value=a+b;}
floataddValue(inta,intb){return(float)(a+b);}
C、intaddValue(inta,intb){returna+1;}
intaddValue(inta,intb){returna+b;}
D、intaddValue(inta,intb){returna+b;}
intaddValue(intx,inty){returnx+y;}
14、关于方法的重载,下列说法哪一个是正确的?
(A)
A、方法的重载是指一个类中多个方法使用相同的名字,但参数不同。
B、方法的重载是指一个类中多个方法使用相同的名字,且参数相同。
C、方法的重载是指子类和父类中两个方法使用相同的名字,但参数不同。
D、方法的重载是指子类和父类中两个方法使用相同的名字,且参数相同。
15、下列关于类、包和源文件的说法中,错误的一项是(D)。
A、一个文件可以属于一个包B、一个包可包含多个文件
C、一个类可以属于一个包D、一个包只能含有一个类
16、下列关于作用域的说法中,正确的一个是(B)。
A、不同方法中声明的不同变量,可以互相访问
B、在不同方法中可以声明相同数据类型的同名局部变量
C、在同一个类中可以声明相同数据类型的同名类变量
D、在同一个程序块中可以声明相同数据类型的同名变量
17、下列描述中不正确的一项是(B)。
A、import语句告诉Java用户需要哪个包(package)中的类
B、所有的类必须实例化,才能调用它的数据成员和方法
C、package语句用于将源文件存入所指定的包中
D、System类不可能实例化,它的所有方法都是通过类变量来调用的
18、为了区分重载多态中同名的不同方法,要求(A)。
A、形式参数个数或者类型不同B、返回值类型不同
C、调用时用类名或对象名做前缀D、形式参数名称不同
19、下列说法中,正确的一个是(A)。
A、类成员变量在使用之前可以不初始化B、局部变量在使用之前可以不初始化
C、参数变量在使用之前必须初始化D、所有的变量在使用之前必须初始化
20、下面哪一项的方法调用能填入程序中的横线处?
(C)
classEx7{
staticvoidmethod1(){
System.out.println("inEx7");
}
}
classEx8{
voidmethod2(){
System.out.println("inEx8");
}
}
publicclassEx9{
publicstaticvoidmain(String[]args){
Ex9e1=newEx9();
e1.method3();
}
publicvoidmethod3(){
Ex7e2=newEx7();
Ex8e3=newEx8();
}
}A、method1();B、Ex7.method1();C、Ex7.method1();D、e2.Method1();
method2():
Ex8.method2();e3.method2();Ex8.method2();
21、若编译和运行下列代码,出现的结果将是(C)
classMyClass{
inti=0;
publicintmyMethod(intx){
returni+x;
}
publicstaticvoidmain(Stringargs[]){
System.out.println(myMethod(10));
}
}
A、0B、10C、编译出错D、以上答案都不对
22、为AB类的一个无形式参数无返回值的方法method书写方法头,使得用类名AB作为前缀就可以调用它,该方法头的形式为(A)
A)staticvoidmethod()B)publicvoidmethod()
C)finalvoidmethod()D)abstractvoidmethod()
23、下面程序中类ClassDemo中定义了一个静态变量sum,分析程序段的输出结果。
(C)
classClassDemo{
publicstaticintsum=1;
publicClassDemo()
{sum=sum+5;}
}
classClassDemoTest{
publicstaticvoidmain(Stringargs[]){
ClassDemodemo1=newClassDemo();
ClassDemodemo2=newClassDemo();
System.out.println(demo1.sum);
}
}
A)0B)6C)11D)2
24、给出如下的程序,A-E选项中与构造方法ConstOver重载的两个构造方法是AC。
publicclassConstOver{
publicConstOver(intx,inty,intz){}
}
A.ConstOver(){}
B.ProtectedintConstOver(){}
C.PrivateConstOver(intz,inty,bytex){}
D.publicObjectConstOver(intx,inty,intz){}
E.publicvoidConstOver(bytex,bytey,bytez){}
25、对象使用时,下面描述错误的是(B)
(A)通过“.”运算符调用成员变量和方法
(B)通过成员变量的访问权限设定限制自身对这些变量方法的调用
(C)将一个对象申明为类的成员时,必须在使用前为其分配内存
(D)在方法中使用对象作为参数时,传递的是对象的地址
26、给出如下代码:
classTest{
privateintm;
publicstaticvoidfun(){
//somecode...
}
}如何使成员变量m被函数fun()直接访问(C)
(A)将privateintm改为protectedintm
(B)将privateintm改为publicintm
(C)将privateintm改为staticintm
(D)将privateintm改为intm
27、MAX_LENGTH是int型public成员变量,变量值保持为常量100,用简短语句定义这个变量。
(C)
(A)publicintMAX_LENGTH=100;
(B)finalintMAX_LENGTH=100;
(C)finalpublicintMAX_LENGTH=100;
(D)publicfinalintMAX_LENGTH=100.
28、构造方法何时被调用(B)
(A)类定义时 (B)创建对象时
(C)调用对象方法时 (D)使用对象的变量时
29、指出下列程序运行的结果( B)
publicclassExample{
Stringstr=newString("good");
char[]ch={'a','b','c'};
publicstaticvoidmain(Stringargs[]){
Exampleex=newExample();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+"and");
System.out.print(ex.ch);
}
publicvoidchange(Stringstr,charch[]){
str="testok";
ch[0]='g';
}
}
(A)goodandabc (B)goodandgbc
(C)testokandabc (D)testokandgbc
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)}
哪行将引起一个编译时错误?
(D)
(A)line3 (B)line5
(C)line6 (D)line10
31、函数重载是指(A)
(A)两个或两个以上的函数取相同的函数名,但形参的个数或类型不同
(B)两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同
(C)两个以上的函数名字不同,但形参的个数或类型相同
(D)两个以上的函数取相同的函数名,并且函数的返回类型相同
32、对于下列代码:
publicclassParent{
publicintaddValue(inta,intb){
ints;
s=a+b;
returns;
}
}
classChildextendsParent{
}
下述哪些方法可以加入类Child (D)
(A)intaddValue(inta,intb){//dosomething...}
(B)publicvoidaddValue(inta,intb){//dosomething...}
(C)publicintaddValue(inta){//dosomething...}
(D)publicintaddValue(inta,intb)throwsMyException{//dosomething...}
33、对于下列代码:
1)classPerson{
2)publicvoidprintValue(inti,intj){//...}
3)publicvoidprintValue(inti){//...}
4)}
5)publicclassTeacherextendsPerson{
6)publicvoidprintValue(){//...}
7)publicvoidprintValue(inti){//...}
8)publicstaticvoidmain(Stringargs[]){
9)Persont=newTeacher();
10)t.printValue(10);
11)}
第10行语句将调用哪行语句?
(D)
(A)line2 (B)line3
(C)line6 (D)line7
34、如果在一个类中定义了如下两个方法,则选项中正确的说法是(A)
voidout()
{System.out.println();}
voidout(intx)
{System.out.println(x);}
A、这种定义是正确的,是方法的重载。
B、这种定义是正确的,是方法的改写。
C、此种定义是错误的,一个类中不能定义两个名字相同的方法。
D、此种定义是错误的,第二个方法应该和第一个方法的参数相同。
35、下面哪一项是Java实现动态多态性的具体手段(B)
A)重载;B)覆盖(重写)C)接口D)抽象类
36、下列说法哪个是正确的?
(C)
A、子类不能定义和父类同名同参数的方法
B、子类只能继承父类的方法,而不能重载
C、重载就是一个类中有多个同名但有不同形参的方法
D、子类只能覆盖父类的方法,而不能重载
37、下列哪个类声明是正确的?
(D)
A)abstractfinalclassHI{•••}B)abstractprivatemove(){•••}
C)protectedprivatenumber;D)publicabstractclassCar{•••}
38、下面的是关于类及其修饰符的一些描述,不正确的是(C)。
A、abstract类只能用来派生子类,不能用来创建abstract类的对象
B、abstract不能与final同时修饰一个类
C、final类不但可以用来派生子类,也可以用来创建final类的对象
D、abstract方法必须在abstract类中声明,但abstract类定义中可以没有abstract方法
39、下列输出的结果是(A)。
classAA
{
voidShow()
{
System.out.println(“类AA”);
}
}
classBBextendsAA{
voidShow()
{