java考试题库第三章 Java语言面向对象的特征docdeflate2.docx
- 文档编号:18445813
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:28
- 大小:21.32KB
java考试题库第三章 Java语言面向对象的特征docdeflate2.docx
《java考试题库第三章 Java语言面向对象的特征docdeflate2.docx》由会员分享,可在线阅读,更多相关《java考试题库第三章 Java语言面向对象的特征docdeflate2.docx(28页珍藏版)》请在冰点文库上搜索。
java考试题库第三章Java语言面向对象的特征docdeflate2
第三章Java语言面向对象的特征
2.选择题
3-1下列对封装性的描述中,错误的是(B).
A.封装体包含了属性和行为
B.封装体中的属性和行为的访问权限是相同的
C.被封装的某些信息在封装体外是不可见的
D.封装使得抽象的数据类型提高了可重用性
3-2下列关于继承性的描述中,错误的是(C)
A.一个类可以同时生成多个子类
B.子类继承了父类的所有成员
C.Java语言支持单重继承和多重继承
D.Java语言通过接口可使子类使用多个父类的成员
3-3下列对多态性的描述中,错误的是(A)
A.Java语言允许运算符重载
B.Java语言允许方法重载
C.Java语言允许变量覆盖
D.多态性提高了程序的抽象性和简洁性
3-4在类的修饰符中,规定只能被同一包类所使用的修饰符是(B)
A.publicB.默认C.finalD.abstract
3-5在成员变量的修饰符中,规定只能被同一包类所使用的修饰符是(B)
A.privateB.publicC.默认D.protected
3-6在成员方法的访问控制修饰符中,规定访问权限包含该类自身,同包的其他类和其他包的该类子类的修饰符是(D)
A.publicB.privateC.默认D.protected
3-7下列关于构造方法的特点的描述中,错误的是(A)
A.不可重载B.方法名同类名C.无返回类型D.系统自动调用
3-8下列关于静态方法的特点的描述中,错误的是(D)
A.在类体内说明静态方法使用关键字static
B.静态方法只能处理静态变量或调用静态方法
C.静态方法不占用对象的内存空间,非静态方法占用对象的内存空间
D.静态方法只能用类名调用
3-9下列对静态初始化器的描述中,错误的是(C)
A.静态初始化器是用来对类进行初始化的,而不是对某个对象初始化
B.静态初始化器是由关键字static和一对花括号组成的语句组
C.静态初始化器不同于构造方法,它不是方法
D.静态初始化器在产生新对象时,是由系统自动调用的
3-10下列关于抽象类的描述中,错误的是(C)
A.抽象类是用修饰符abstract说明的
B.抽象类是不可以定义对象的
C.抽象类是不可以有构造方法的
D.抽象类通常要有它的子类
3-11下列关于类的继承性的描述中,错误的是(D)
A.继承是在已有类的基础上生成新类的一种方法
B.子类继承父类的所有成员
C.Java语言要求一个子类只有一个父类
D.父类中成员的访问权限在子类中将被改变
3-12下列关于子类继承父类的成员的描述中,错误的是(A)
A.子类中继承父类中的所有成员都可以直接访问
B.子类中定义有与父类同名变量时,子类继承父类的操作中,使用继承父类的变量;子
类执行自己的操作中,使用自己定义的变量
C.当子类中出现成员方法头与父类方法头相同的方法时,子类成员方法覆盖父类中的成
员方法
D.方法重载是编译时处理的,而方法覆盖是在运行时处理的
3-13下列关于接口的描述中,错误的是(B)
A.接口实际上是由变量和抽象方法构成的特殊类
B.一个类只允许继承一个接口
C.定义接口使用的关键字是interface
D.在继承接口的类中通常要给出接口中定义的抽象方法的具体实现
3-14下列关于包的描述中,错误的是(A)
A.包是一种特殊的类B.包是若干个类的集合
C.包是使用package语句创建的D.包有有包名包和无名包两种
3-15下列常用包中,存放用户图形界面类库的包是(A)
A.java.awtB.java.langC.java.utilD.java.io
3-16下列是系统提供的常用的类,所有类的父类的类是(B)
A.MathB.ObjectC.SystemD.String
3.判断题
3-1类是一种类型,也是对象的模板。
(对)
3-2Java语言只支持单重继承,不支持多重继承。
(对)
3-3类中说明的方法可以定义在类体外。
(错)
3-4class不是定义类的唯一关键字。
(错)
3-5某类的对象可以作为另一个类的成员。
(对)
3-6在类体内说明成员变量时不允许赋初值。
(错)
3-7最终变量就是Java语言中的符号常量。
(对)
3-8静态变量的引用只能使用对象。
(错)
3-9静态方法只能处理静态变量。
(对)
3-10抽象方法是一种只有说明而无具体实现的方法。
(对)
3-11最终方法是不能被当前子类重新定义的方法。
(对)
3-12Java语言中,方法调用一律都是传址的引用调用。
(错)
3-13非静态方法中不能引用静态变量。
(错)
3-14静态初始化器是在构造方法被自动调用之前运行的。
(对)
3-15抽象方法仅有方法头,而无方法体。
(对)
3-16抽象方法一定出现在抽象类中。
(对)
3-17最终类,最终方法和最终变量的修饰符都用final。
(对)
3-18创建对象时系统将调用适当的构造方法给对象初始化。
(对)
3-19使用运算符new创建对象时,赋给对象的值实际上是一个地址值。
(对)
3-20使用构造方法只能给非静态成员变量赋初值。
(对)
3-21创建对象时,该对象占用的内存空间除了非静态的成员变量外,还有非静态的成员方法。
(对)
3-22Java语言中,对象成员的表示只使用运算符“.”。
(对)
3-23Java语言中,对象赋值实际上是同一个对象具有两个不同的名字,因为他们都有同一个地址值。
(对)
3-24对象可作方法参数,对象数组不能作方法参数。
(错)
3-25Java语言中,所创建的子类都应有一个父类。
(对)
3-26Java语言中,类的继承是可以传递的。
(对)
3-27Java语言中,构造方法是可以继承的。
(错)
3-28子类中构造方法应包含自身类的构造方法和直接父类的构造方法。
(对)
3-29调用this或super的构造方法的语句必须放在第一条语句。
(对)
3-30子类对象可以直接赋值给父类对象;而父类对象不可以赋值给子类对象。
(错)
3-31子类中所继承父类的成员都可以在子类中访问。
(错)
3-32成员方法的重载和覆盖是一回事。
(错)
3-33一个类可以实现多个接口。
接口可以实现“多重继承”。
(对)
3-34实现接口的类不能是抽象类。
(对)
4.填空题
3-1对象具有3大要素,它们分别是(对象名),(对象类型),(对象值)。
这3大要素分别用(同标识符),(类名),(默认值或初值)表示。
3-2定义类时,通常要使用的关键字有(class),(extends),(implements)。
3-3成员变量的定义格式如下:
([<修饰符>])<变量类型><变量名>(=<初值>);
3-4成员变量的非访问控制修饰符有(static),(final),(volatile)。
3-5在成员方法的定义中可省略的部分有(修饰符),(参数表),(异常类名列表)。
3-6Java语言中,重载方法的选择是在(编译)时进行的,系统根据(参数个数),(参数类型),(参数顺序)寻找匹配方法。
3-7没有子类的类称为(最终类),不能被子类重载的方法称为(最终方法),不能被改变值的量称为常量,又称为(最终变量)。
3-8创建一个对象时,通常要包含3项内容:
(说明对象),给对象分配空间,(对象初始化)。
3-9系统规定int型变量默认值为(0),浮点型变量的默认值为(0.0),布尔型变量的默认值为(false)。
3-10Java语言中,定义子类时,使用关键字(extends)来给出父类名。
如果没有指出父类,则该类的默认父类为(object类)。
3-11系统规定:
表示当前类的构造方法用(this()),表示直接父类的构造方法用(super())。
3-12接口中默认的成员变量的修饰符为(final),默认的成员方法的修饰符是(final)。
3-13实现接口中的抽象方法时,必须使用(完全相同)方法头,并且还要用(public)修饰符。
3-14包名与子包名之间用(.)分隔。
加载包的关键字是(import)。
3-15字符串类又包含两大类,它们是(String)和(StringBuffer).
5.分析程序的输出结果题
3-1Exer3_1.java
classA
{
intx,y,z,sum;
A(inti,intj,intk)
{
x=i;
y=j;
z=k;
sum=x+y+z;
}
booleansameA(Aal)
{
if((al.x==x)&(al.y==y)&(al.z==z))
returntrue;
else
returnfalse;
}
booleansameS(Aal)
{
if(al.sum==sum)
returntrue;
else
returnfalse;
}
}
classExer3_1
{
publicstaticvoidmain(Stringargs[])
{
Aa=newA(2,5,8);
Ab=newA(2,5,8);
Ac=newA(5,8,2);
System.out.println(a,sameA(b));
System.out.println(a,sameA(c));
System.out.println(a,sameA(b));
System.out.println(a,sameA(c));
}
}
输出结果如下:
true
false
true
true
3-2Exer3_2.java
classB
{
voidmeth(inti)
{System.out.println("Int:
"+i);}
voidmeth(doublei)
{System.out.println("Double:
"+i);}
}
classExer3_2
{
publicstaticvoidmain(Stringargs[])
{
inti=8;
doubled=6.8;
shorts=10;
floatf=5.3f;
byteb=9;
charc='a';
Bob=newB();
ob.meth(i);
ob.meth(d);
ob.meth(s);
ob.meth((int)f);
ob.meth(b);
ob.meth(c);
}
}
输出结果如下:
Int:
8
Double:
6.8
Int:
10
Int:
5
Int:
9
Int:
97
3-3Exer3_3.java
classC
{
intc;
C(inta)
{
c=0;
for(inti=0;i<=a;i++)
c+=i;
}
C(Cb)
{c=b.c;}
}
classExer3_3
{
publicstaticvoidmain(Stringargs[])
{
Cc1=newC(6);
Cc2=newC(newC(4));
System.out.println("c1:
"+c1.c);
System.out.println("c2"+c2.c);
}
}
输出结果如下:
c1:
21
c2:
10
3_4Exer3_4.java
classD
{
staticintd=100;
staticintmeth()
{
ints=d*10;
return(s);
}
D(inti)
{d=i;}
}
classExer3_4
{
publicstaticvoidmain(Stringargs[])
{
System.out.println("d.meth:
"+D.d);
Ddd=newD(10);
System.out.println("d:
"+D.d);
System.out.println("dd:
"+dd.d);
System.out.println("d.meth:
"+D.meth());
System.out.println("d.meth:
"+dd.meth());
System.out.println("d:
"+D.d);
D.d=500;
System.out.println("d.meth:
"+D.meth());
}
}
输出结果如下:
d.meth:
100
d:
10
dd:
10
d.meth:
100
d.meth:
100
d:
10
d.meth:
5000
3_5Exer3_5.java
classE
{
doubleh,w;
voidshow()
{System.out.println("width="+w+",height="+h);}
}
classTextendsE
{
doublearea()
{returnw*h;}
}
classExer3_5
{
publicstaticvoidmain(Stringargs[])
{
Tt1=newT();
Tt2=newT();
t1.w=8.0;
t1.h=5.0;
t2.w=12.0;
t2.h=16.0;
t1.show();
System.out.println("t1:
area="+t1.area());
t2.show();
System.out.println("t2:
area="+t2.area());
}
}
输出结果如下:
Width=8.0,height=5.0
t1:
area=40.0
width=12.0,height=16.0
t2:
area=192.0
3-6Exer3_6.java
classA
{
A()
{System.out.println("classA");}
}
classBextendsA
{
intb;
B(inti)
(b=i);
}
classCextendsB
{
privateintc;
C(inti,intj)
{
super(j);
c=i;
}
intreturnc()
{returnc;}
}
classExer3_6
{
publicstaticvoidmain(Stringargs[])
{
Cc=newC(5,18);
System.out.println("c:
"+c.b*c.returnc());
}
}
输出结果如下:
classA
c:
90
3-7Exer3_7.java
classA
{
voidshow()
{System.out.println("classA");}
}
classBextendsA
{
voidshow()
{System.out.println("classB");}
}
classCextendsB
{
voidshow()
{System.out.println("classC");}
}
classExer3_7
{
publicstaticvoidmain(Stringargsp[])
{
Aa=newA();
Bb=newB();
Cc=newC();
Ax=newA();
x=a;
x.show();
x=b;
x.show();
x=c;
x.show();
}
}
输出结果如下:
classA
classB
classC
3-8Exer3_8.java
abstractclassShap
{
privatedoublew,h;
Shap(doublei)
{w=h=i;}
Shap(doublei,doublej)
{w=i,h=j;}
Shap(Shaps)
{
w=s.w;
h=s.h;
}
doublegetw()
{returnw;}
doublegeth()
{returnh;}
abstractdoublearea();
}
classRestextendsShap
{
Rect(doublei)
{super(i);}
Rect(doublei,doublej)
{super(i,j);}
Rect(Rectr)
{super(r);}
doublearea()
{returngetw()*geth();}
}
classExer3_8
{
publicstaticvoidmain(Stringargs[])
{
Shaps[]=newShap[3];
s[0]=newRect(8.0);
s[1]=newRect(5.0,6.0);
s[2]=newRect(newRect(12.0,4.0));
for(inti=0;i System.out.println("s["+i+"]area="+s[i].area()); } } 输出结果如下: s[0]area=64.0 s[1]area=30.0 s[2]area=48.0 3-9addre.java(在子目录address下) packageaddress; publicclassaddre { privateStrings1,s2,s3; publicaddre(Stringstr1,Stringstr2,Stringstr3) { s1=str1; s2=str2; s3=str3; } publicvoidshow() { System.out.print(s1); System.out.print("\t"+s2); System.out.println("\t"+s3); } } Exer3_9.java importaddress.*; classExer3_9 { publicstaticvoidmain(Stringargs[]) { addres[]=newaddre[2]; s[0]=newaddre("PKU","building44","room109"); s[1]=newaddre("PKU","building54","room209"); for(inti=0;i s[i].show(); } } 输出结果如下: PKUbuilding44room109 PKUbuilding54room209 3-10Exer3_10.java interfaceSeries { intgetVal(); } classR1implementsSeries { intval; R1() {val=0;} publicintgetVal() { val++ returnval; } } classR2implementsSeries { intval; R2() {val=0;} publicintgetVal() { val+=2; returnval; } } classExer3_10 { publicstaticvoidmain(Stringargs[]) { R1r1=newR1(); R2r2=newR2(); Seriess; for(inti=0;i<3;i++) { s=r1; System.out.println("r1: "+s.getVal()); s=r2; System.out.println("r2: "+s.getVal()); } } } 输出结果如下: r1: 1 r2: 2 r1: 2 r2: 4 r1: 3 r2: 6 3.5测试题 1.单选题 3-1定义类时使用的关键字是()。 A.classB.structC.uninD.array 3-2下列关于方法的描述中,错误的是()。 A.方法只有类的成员方法,再无其他方法 B.方法可以重载和内联 C.对象作为方法参数时,参数传递的是对象地址值 D.方法的返回值是通过return来实现的 3-3在下列关于静态成员的描述中,错误的是()。 A.静态成员有成员变量和方法两种 B.静态成员的修饰符是static C.静态成员可以使用类名访问,也可使用对象名访问 D.静态方法可以访问静态成员变量也可以访问非静态成员变量 3-4在下列关于类的继承的描述中,错误的是()。 A.子类只允许一个父类 B.一个父类只能生成一个子类 C.继承不改变成员访问权限 D.私有成员和构造方法不能继承 3-5在下列关于方法的重载和覆盖的描述中,错误的是()。 A.方法重载是指在同一个类中允许出现方法参数,个数,顺序不同而方法名相同的若干方法; B.方法覆盖是指在父类和子类之间出现的方法头相同而方法体不同的多个方法 C.方法重载是在编译时进行选择的 D.方法覆盖也是在编译时进行选择的 2.判断题 3-1调用默认构造方法时,对象成员变量将获取默认值。 3-2对象可以作另类的成员,也可以作数组元素。 3-3Java语言的多态性仅表现在方法的重载上。 3-4一个类可以同时实现多个接口,接口是在编译时处理的。 3-5可以创建包,一个包中只能有一个类。 3-6Object类是所有类的父类。 3-7System类中所有成员都是static的。 3-8String类和StringBuffer类是不同的。 3.分析程序结果题 3-1分析下列程序的输出结果。 程序内容如下: importjava.io.*; classA { staticinta=100; staticintTwoa() {return2*a;} }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java考试题库第三章 Java语言面向对象的特征docdeflate2 java 考试 题库 第三 语言 面向 对象 特征 docdeflate2