java复习题库习题31习题36Word格式文档下载.docx
- 文档编号:19810561
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:17
- 大小:23.46KB
java复习题库习题31习题36Word格式文档下载.docx
《java复习题库习题31习题36Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《java复习题库习题31习题36Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。
抽象方法只能存在于抽象类中。
抽象方法用关键字___abstract_____来修饰。
java语言中____Object___是所有类的根.
6.
在java中有一种叫做_____构造函数__的特殊方法,在程序中用它来对类成员进行初始化.
7.
new是___创建___对象的操作符.
8.
我们在java程序中,把关键字____super____加到方法名称的前面,来实现子类调用父类的方法
9.
在java程序里,同一类中重载的多个方法具有相同的方法名和_不同的____的参数列表.重载的方法可以有不同的返回值类型
10.
java语言通过接口支持__多重____继承,使类继承具有更灵活的扩展性
11.
java语言中,调用方法时,参数传递是___值___调用,而不是地址调用
12.
接口是一种只含有抽象方法或___常量___的一种特殊抽象类
一、填空题
1.在子类中使用关键字_______做前缀可调用被子类覆盖的父类中的方法。
2.Java中所有类都是_______类的子类。
3.通过_______运算符就能实现对对象成员变量的访问和对象方法的调用。
4.类的构造方法的名称必须与_______名相同。
5.类方法只能处理用关键字_______修饰的对象。
二、选择题
1.对象使用时,下面描述错误的是()
A.通过“.”运算符调用成员变量和方法
B.通过成员变量的访问权限设定限制自身对这些变量方法的调用
C.将一个对象申明为类的成员时,必须在使用前为其分配内存
D.在方法中使用对象作为参数时,采用引用调用
2.定义一个名为“MyClass”的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为:
()
A.privateclassMyClassextendsObjectB.classMyClassextendsObject
C.publicclassMyClassD.privateclassMyClassextendsObject
3.Java中访问限定符不包括()
A.publicB.privateC.defaultD.final
4.构造方法何时被调用()
A.类定义时B.创建对象时C.调用对象方法时D.使用对象的变量时
5.如果任何包中的子类都能访问超类中的成员,那么应使用哪个限定词()
A.publicB.privateC.protectedD.transient
三、程序阅读题
1.编译并运行下面的程序,运行结果为()
publicclassT1
{
publicstaticvoidmain(String[]args)
{
T1a=newT1();
a.method(8);
a.method(1.2f);
voidmethod(floati)
System.out.println("
float:
"
+i);
voidmethod(longi)
System.out.println("
long:
(2)定义类A和类B如下:
classA
inta=1;
doubled=2.0;
voidshow()
{
ClassA:
a="
+a+"
\td="
+d);
classBextendsA
floata=3.0f;
Stringd="
Javaprogram."
;
voidshow()
{
super.show();
ClassB:
(1)若在应用程序的main方法中有以下语句:
Aa=newA();
a.show();
则输出的结果如何?
(2)若在应用程序的main方法中定义类B的对象b:
Ab=newB();
b.show();
四、简答题
1.什么是类?
什么是对象?
类和对象有何联系?
2.方法的重载和方法的覆盖有什么不同?
3.类变量和实例变量有何区别?
4.抽象类和抽象方法有什么特点?
答案:
一、1.super2.Object3.圆点4.类5.static
二、1.B2.C3.D4.B5.C
1.答:
程序可以编译运行,输出结果为:
long:
8float:
1.2
3.答:
ClassA:
a=1d=2.0
a=3.0d=Javaprogram.
1.答:
在面向对象程序设计里,类是定义一个对象的属性和方法的蓝本。
对象就是一组变量和相关方法的集合,其中变量表明对象的状态,方法表明对象所具有的行为。
类是对象的模板,对象是类的实例,可以从一个类中创建许多对象。
2.答:
方法重载,指的是在类中创建多个具有相同名称,但使用不同参数的方法,Java虚拟机根据传递给方法的参数个数和类型决定调用哪个重载方法。
方法的覆盖指在子类中重新定义父类中已有的方法,对于重写的方法,运行时系统根据调用该方法的实例的类型来决定选择哪个方法调用。
3.答:
由static修饰的变量称为类变量,当系统在程序中第一次遇到一个类时,便会拷贝一份所有的类变量在内存里。
然后那些由此类产生的实例便可分享这些类变量。
实例变量指不是用static修饰的变量,可供实例方法使用。
实例变量会复制于每一个从类产生的实例中。
4.答:
①一个抽象类里可以没有抽象方法,但含有抽象方法的类必定为抽象类。
②抽象类不能被实例化为对象,而只能作为其它类的超类,并且必须被继承。
③若某子类继承自一个抽象类,而该子类不是抽象类,则子类需用覆盖的方式来实例化超类中的所有抽象方法。
抽象方法可再与public、protected复合使用,但不能与final、private和static复合使用。
④抽象方法只有方法声明,不能有方法体。
一、判断题
1.内部类可以访问外层类的任何变量,包括私有的。
()
2.匿名类可以有构造器,声明时候不能带参数。
3.抽象方法可以是static的。
4.构造器没有任何返回类型,哪怕是void也不行。
5.只要类中显式地定义一个,那么Java不会再为你定义一个默认的构造器。
6.构造方法可以被继承。
()
7.方法的参数变量不能是final的()
8.一个Java类可以有多个父类,这称作多继承.()
二、简答题
1.Java的成员变量修饰符有哪几种?
其中哪种修饰符限定的范围最大?
2.写出下列关键字的意义和运用场合:
①final;
②finalize;
③finally。
一、1.T2.F3.F4.T5.T6.F7.F8.F
二、1.答:
成员变量的修饰符有public、protected、private、static、final、transient、volatile七种。
Public修饰符的限定范围最大。
final,finally,finalize的区别如下:
final用于声明属性、方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
finally是异常处理语句结构的一部分,表示总是执行。
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。
一、判断程序段
1.abstractclassName{
privateStringname;
publicabstractbooleanisStupidName(Stringname){}
2.abstractclassSomething{
privateabstractStringdoSomething();
3.publicclassSomething{
publicintaddOne(finalintx){
return++x;
4.publicclassSomething{
publicstaticvoidmain(String[]args){
Othero=newOther();
newSomething().addOne(o);
publicvoidaddOne(finalOthero){
o.i++;
classOther{
publicinti;
5.classSomething{
inti;
publicvoiddoSomething(){
i="
+i);
二、下面代码编译和运行的结果是什么?
1.classValue{
publicinti=15;
publicclassTest{
publicstaticvoidmain(Stringargv[]){
Testt=newTest();
t.first();
publicvoidfirst(){
inti=5;
Valuev=newValue();
v.i=25;
second(v,i);
System.out.println(v.i);
publicvoidsecond(Valuev,inti){
i=0;
v.i=20;
Valueval=newValue();
v=val;
System.out.println(v.i+"
A.15020B.15015C.20020D.01520
2.classFatherClass{publicFatherClass(){System.out.println("
FatherClassCreate"
);
}}publicclassChildClassextendsFatherClass{publicChildClass(){System.out.println("
ChildClassCreate"
}publicstaticvoidmain(String[]args){FatherClassfc=newFatherClass();
ChildClasscc=newChildClass();
}}
3.publicclassStatic{
static{
intx=5;
staticintx,y;
publicstaticvoidmain(Stringargs[]){
x--;
myMethod();
System.out.println(x+y+++x);
publicstaticvoidmyMethod(){
y=x+++++x;
A.编译错误B.输出1C.输出2D.输出3
4.classMyParent{
intx,y;
MyParent(intx,inty){
this.x=x;
this.y=y;
publicintaddMe(intx,inty){
returnthis.x+x+y+this.y;
publicintaddMe(MyParentmyPar){
returnaddMe(myPar.x,myPar.y);
classMyChildextendsMyParent{
intz;
MyChild(intx,inty,intz){
super(x,y);
this.z=z;
publicintaddMe(intx,inty,intz){
returnthis.x+x+this.y+y+this.z+z;
publicintaddMe(MyChildmyChi){
returnaddMe(myChi.x,myChi.y,myChi.z);
returnthis.x+x+this.y+y;
publicclassMySomeOne{
MyChildmyChi=newMyChild(10,20,30);
MyParentmyPar=newMyParent(10,20);
intx=myChi.addMe(10,20,30);
inty=myChi.addMe(myChi);
intz=myPar.addMe(myPar);
System.out.println(x+y+z);
A.300B.240C.120D.180
一、1.错。
abstractmethod必须以分号结尾,且不带花括号。
2.错。
abstract的methods不能以private修饰。
abstract的methods就是让子类implement(实现)具体细节。
3.错。
intx被修饰成final,意味着x不能在addOnemethod中被修改。
4.正确。
在addOnemethod中,参数o被修饰成final。
如果在addOnemethod里我们修改了o的reference(比如:
o=newOther();
),那么如同上例这题也是错的。
但这里修改的是o的membervairable(成员变量),而o的reference并没有改变。
5.正确。
输出的是"
i=0"
。
二、1. 正确答案A
2.答案:
FatherClass
Create
ChildClass
3.正确答案 D
4.正确答案:
A
一、简答题
1.什么是异常?
为什么要进行异常处理?
2.简述异常处理的过程。
1.下面(
)是正确的接口。
A.interfaceAB.abstractinterfaceA
{{
Voidprint(){};
print();
}}
C.abatractinterfaceAD.interfaceA
Abstractvoidprint(){};
voidprint();
2.在异常处理中,如释放资源、关闭文件、关闭数据库等由()来完成。
A.try子句B.catch子句
C.finally子句D.throw子句
3.当方法遇到异常又不知如何处理时,下列哪种说法是正确的()。
A.捕获异常 B.抛出异常
C.声明异常 D.嵌套异常
4.关键字(
)可以抛出异常?
A.transientB.throws
C.throwD.static
5.下面是一个有错的程序:
1packagepayroll;
2classEmployeeNames{
3publicstaticString[]names={"
a"
"
b"
};
4publicstaticString[]getNames(){
5returnnames;
6}
7}
另一个文件
8packageclient
9importpayroll.EmployeeNames;
10publicclassTraderNamesextendsEmployeeNames{
11publicString[]traders={"
c"
d"
12}
下面有四个改正项,哪个答案能改正程序?
(
)
A.8packageclient;
B.2protectedclassEmployeeNames{
C.1packageparyroll;
D.9importpayroll.EmployeeNames
6.
String
str
=
"
Java"
StringBuffer
buffer
new
StringBuffer(str);
if(str.equals(buffer)){
Both
are
equal"
}else{
not
A.both
equalB.both
equalC.编译错D.
运行错
7.class
Parent{
private
void
method1(){
Parent'
s
method1()"
public
method2(){
method2()"
method1();
class
Child
extends
Child'
static
main(String
args[]){
Parent
p
Child();
p.method2();
编译错
打印parent’s
method2()
parent’s
method1()
打印
child’s
8.下面程序段的编译和运行的结果是什么?
s1
String("
Test"
s2
if
(s1==s2)
Same"
(s1.equals(s2))
Equals"
Same
EqualB.
EqualsC.
SameD.
编译错
9.那一行的输出结果是false?
1.publicclassMyClass
2.{
3.staticStrings1="
Iamunique!
4.publicstaticvoidmain(Stringargs[])
5.{
6.Strings2="
7.Strings3=newString(s1);
8.System.out.println(s1==s2);
9.System.out.println(s1.equals(s2));
10.System.out.println(s3==s1);
11.System.out.println(s3.equals(s1));
12.System.out.println(TestClass.s4==s1);
13.}
14.}
15.
16.classTestClass
17.{
18.staticStrings4="
19.}
A.10和12行B.12行C.8和10行D.都不是
一、1.答:
异常,是指由于程序运行时发生错误,从而导致程序错误结束。
在进行程序设计时,错误的产生是不可避免的,没有异常处理代码的程序,在运行时发生错误则可能非正常结束,引起严重问题。
因此,Java给程序员提供了处理运行时错误的功能,称为异常处理。
2.答:
程序运行时出现错误时,创建异常对象,抛出异常对象,捕获该异常对象并进行处理。
二、1.D2.C3.C 在Java语言中,有时一个方法生成一个异常,但该方法并不能确定如何处理此异常,如找不到文件之类的异常,必须将异常传递给调用方法,由调用它的方法来处理,这种时候方法用声明异常抛出,让异常对象可从调用栈向后传递,直至有相应的方法捕获它为止。
所以当方法
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 复习 题库 习题 31 36