面向对象程序设计复习题与参考答案Word文档格式.docx
《面向对象程序设计复习题与参考答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计复习题与参考答案Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
![面向对象程序设计复习题与参考答案Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-12/31/3b9ad05f-fd11-4e94-a11f-49ec1aaad97f/3b9ad05f-fd11-4e94-a11f-49ec1aaad97f1.gif)
则类B是类A的_。
20Java语言中,通常把可能发生异常的方法调用语句放到try块中.并用紧跟其后的_块来捕获和处理异常。
21•多态是指。
22•声明常量时使用修饰符。
23.Java中异常抛出使用保留字。
24•—个类成员或者方法前面加上了修饰符,那说明该数据成员和方法可以直接通过类需来访问和调用。
25•如果类成员前而没有访问权限修饰符,则该类成员具有访问权限。
26.卜•而构造方法是非法的a):
publicintClassA(intone){
•••
}b):
publicClassB(intone,inttv/o){
}c):
ClassC(){
27•程序填空:
publicvoidgetData(){
Stringstr=JoptionPane.shov/lnputDialog(null/,lnput:
M);
if(str.equals(“”){thrownewIOException();
)
2&
对象称为类的。
29.Java程序的源文件以为扩展名,编译后的文件以为扩展夕“
二、简答题:
仁类和对象的概念和关系是什么?
2•请说明对象声明和对象生成之间的区别,并使用内存状态图举例说明这种区别。
3.this和super两个保留字的意义和作用是?
4•构造器方法有什么特点和作用?
5•保留字throw和throv/s有什么区别?
6•将下而的while循环改写为for循环intcount=1,sum=0;
=30){sum+=count;
count+=3;
7・Java语言编译和执行的过程是?
检查型异常和非检査型异常有何区别?
9•请改造下而的构造方法,使第一个构造方法调用第二个构造方法。
publicClassOne(intalpha){this.alpha=alpha;
this,beta=0;
}publicClassOne(intalpha,intbeta){
this.alpha=alpha;
this.beta=beta;
10.Java有哪几个访问权限修饰符,各起到什么作用?
门•请说明实例方法.类方法和构造器方法的特点和区别。
三、请写出下面的代码段的输出结果:
1.classQ2main{
publicstaticvoidmain(string[]args){
Question1\voq2;
q2=newQuestionl\vo();
q2.init();
q2.increment();
system,out.println(q2・getCount());
classQuestion1\7o{
privateintcount;
publicvoidint(){
count=1;
publicvoidincrement(){
count=count+1;
publicintgetCount(){
returncount;
2.intgradeLevel;
sv/itch(gradeLevel){
case1:
System.out.printC'
Gotothe101"
case2:
System.out.printC'
Goto202”);
break;
case3:
Goto303"
case4:
System.out.printf'
Goto404n);
break;
default:
System.out.printCdefauk11);
如果变MgradeLevel在switch语句之前为以下数值,上述程序代码段执行后,将分别输出什么?
a)2
b)3
c)4
d)5
3.intx;
for(intv/idth=1;
v/idth<
=20,v/idth++){
for(intlength=5,length<
=25,length+=5){
x=width*length;
System.out.print("
"
+x);
System.out.printlnC"
1);
输岀结果为:
4.classMyExceptionlextendsException{
publicMyExceptionl()Q
publicMyExceptionl(Stringnisg){super(msg);
}
publicclassExceptionlestf
publicstaticvoidf()throv/sMyExceptiord{
System.out.printIn(HThe1stlineoff()H);
throv/nev/MyExceptionl(^Exception1:
Originatedinf()"
publicstaticvoidmain(String]]args){
System.out.printIn("
The1stlineofmain()M);
try{
System.out.printIn("
The2ndlineofmain()"
f();
System.out.printIn(HThe3rdlineofmain()"
}catch(MyException1e){
System・out・printin(e・getMessage());
finally{
System.out.printIn(nThe4thlineofmain(门;
System.out.printlnC'
The5thlineofmain()H);
输出结果为:
5.importjava.io.*;
classBase{
Base(){
System.out.println(HBaseO,1);
voidm1(){
System.out.println("
Base.m1()H);
classDerivedextendsBase{
Derived(){
thisC'
default1'
System.out.pnntln(,,Denved()"
Derived(Stringss){
System,out.println(ss);
System.out.println("
Derived.m1()H);
publicclassApplication^
publicstaticvoidmain(Stringargs[]){
Baseb;
b=nev/Derived();
b.m1();
6.classShape{
voiddra\v(){
Shape.dra\v()H);
classCircleextendsShape{voiddraw(){
System.out.pnntln(,,Circle.dra\v(),,);
classSquareextendsShape{voiddraw(){
System・out・println(”Square・draw()”);
publicclassShapes{
publicstaticvoidmain(String[]args){
Shape[]s=newShape[3];
s[O]=nev/Shape();
s[1]=nevvCircle();
s[2]二nevvSquare()
for(inti=0;
i<
3;
i++)
s[i].draw();
7.try{
number=Integer.parselnt(u-30n);
if(number<
0){
thrownewException(“Nonegative”);
catch(NumberFormatExceptione){
System.out.println(“Cannotcoverttointn);
}catch(Exceptione){
System.out.println(aError:
°
+e.getMessage());
}finally{
System.out.println(<
<
DONEM);
classValue{
inti=10;
class7ester{
publicstaticvoidtest(intx){
x=20;
publicstaticvoidtest(Valuev){
v.i=20;
Valuev仁newValue();
intx=10;
Tester,test(x);
Tester.test(v1);
System,out.println(x);
System,out.println(v1.i);
9.classRock{
Rock(){
System.out.println("
CreatingRock11);
Rock(inti){
System.out.println(”CreatingRocknumber11+i);
publicclassSimpleConstructor{
if(i==1)
newRock();
else
newRock⑴;
lassBicycleRegistration{
Bicyclebikel,bike2;
bikel=newBicycle();
bike2=newBicycle(“xxxx”);
bikel.setOv/nerNameCTest"
System.out.println(bikel.getOv/nerName()+"
ownsabicycle.u);
System.out.println(bike2.getOv/nerName()+Malsoov/nsabicycle."
classBicycle{
privateStringownerName;
publicBicycle(){
ov/nerName="
Unknown”;
publicBicycle(Stringname){
ov/nerName=name;
publicStringgetOv/nerName(){returnov/nerName;
publicvoidsetOv/nerName(Stringname){ownerName=name;
输岀结果为:
4.编程题:
1.编写一段Java程序代码,用一个对话在分开的两行中显示两条消息:
“ICanDesign”和“AndICanProgram二
2•编写一个Java程序,对于给定的年份,回答“LeapYea严(闰年)或者"
NotaLeapYear"
(平年)。
如果一个年份能被4整除,但是不能被100整除,它是闰年;
如果一个年份能被100整除,也能被400整除,它也是闰年。
需要定义需为LeapYear的服务提供类
3•编写一个do-while循环以计算正整数中前30个奇数的累加和。
4•编写可以根据用户年龄和身髙给出推荐的体重的的Java程序,利用下面的公式计算岀推荐的体重:
recommendedWeight=(height-100+age/10)*0.9
需要左义需为Height(身髙)的服务提供类,它应该会有可以根据身高得到推荐提供的方法。
5•请按照以下要求写出完整的程序代码(要求能上机编译运行):
1)创建一个抽象类AAbstractBase.该类至少包含一个抽象方法;
2)创建一个类TestClasSt该类继承AAbstractBase,并包含两个构适器方法:
6•泄义一个Vehicle类,类中包含一个Person类型的数据成员owner、一个获得owner值的访问方法和一个设Itowner值的访问方法。
左义VehicleManage个类,该类包含主方法,并在主方法中创建Vehicle类的对彖,并调用其设置owner和获取owner的方法。
参考答案
tl
3.this它代表当前对象名,可用来调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句),在程序中易产生二义性之处,应使用this来指明当前对象;
super:
它引用当前对象的直接父类中的成员,可以用来调用基类中的某一个构造函数(应该为构造函数中的第一条语句,)也可以用来在基类与派生类中有相同成员左义时直接访问父类中被隐藏的父类中成员数据或函数。
4•构造器一般用于对类进行初始化。
其特点如下:
a)其泄义形式跟类中其他方法基本类似
b)英方法名与类名完全相同(包括大小写)。
c)其在对象被创建时自动被Java调用,而无需用户干预
d)其没有返回值类型。
e)一个类可以泄义多个构造方法
5.throv/用于抛出一个异常,throws则是用于声明未必处理的运行时异常。
6.sum=0;
for(intcount=1;
count<
=30;
count+=3)
sum+=count;
7.Java编译器将以.java为后缀需的Java源代码文件编译成以.class结尾的字节码文件。
Java的虚拟机
再根据不同的软硬件平台将.class文件翻译成机器码文件予以执行。
因为编程错误而导致的异常,或者是不能期望程序捕获的异常(解除引用一个空指针,数组越界,除零,等等),为了使开发人员免于处理这些异常,一些异常被命名为非检査型异常(即那些继承自RuntimeException的异常)并且不需要进行声明,而检査型异常如果没有捕获则需在方法头部进行声明。
9.publicClassOne(intalpha){
this(alpha,O);
jpublicClassOne(intalpha,intbeta){
10.public:
表明该成员变虽:
和方法是共有的,能在任何情况下被访问。
protected:
必须在同一包中或者该类的导出类中才能被访问:
private:
只能在本类中访问;
缺省的为包访问权限,在同一个包中可以访问
"
•类方法前而有static保留字,英不需要创建类的实例,通过类名即可访问;
实例方法则为普通方法,其需要创建类的实例后通过实例访问:
构造方法的名称与类名完全相同,其在创建类的实例是自动执行。
三.请写出下面的代码段的输出结果:
1.3
2.
(a)Goto202
(b)Goto303
Goto404
(c)Goto404
(d)default
3.510152025
10
20
30
40
50
15
45
60
75
80
100
25
125
4.The1stlineofmain()
The2ndlineofmain()The1stlineoff()
Exception1:
0riginatedinf()The4thlineofmain()
The5thlineofmain()5・Base()
default
Derived()
Derived.m1()
6.Shape.draw()
Circle.dra\v()
Square.drav/()
7.Error:
Nonegative
DONE
8.10
9.CreatingRocknumber0
CreatingRock
CreatingRocknumber2
10.Testownsabicycle・
xxxxalsoownsabicycle・
四、编程题:
1.importjavax.swing』;
publicclassTest{
JOptionPane.shov/MessageDialogCnuU/'
lCanDesign\nAndICanProgram"
2.publicclasslest{
publicstaticvoidmain(String[]args){
LeapYearly二nevvLeapY?
ar();
System.out.println(puteLeapYear(1998));
System.out.println(puteLeapYear(1900));
System.out.println(puteLeapYear(2000));
classLeapYearf
publicbooleancomputeLeapYear(intyear){
if(year%4==0&
year%100!
=0)returntrue;
if(year%100==0&
year%400==0)returntrue;
returnfalse;
3.publicclasslest{
publicstaticvoidmain(String]]args){
intsum=0,i=0;
do{
sum=(i*2+1);
i++;
}v/hile(i<
=30);
System・out・println(sum);
4.publicclassTest{
publicstaticvoidmain(String[]args){Weight\v1=newWeight。
;
System.out.println(w1.getRecommendedWeight(30,170));
classWeighty
publicdoublegetRecommendedWeight(intage,intheight){return(height-100+age/10)*0.9;
5.publicclassTest{
Testclasst1,t2;
t1=nev/TestClass();
t1.testFun();
t2=nev/TestClass(10);
t2.testFun();
abstractclassAAbstractBase{abstractvoidtestFun();
classTestClassextendsAAbstractBase{inti;
7estClass(){this(O);
}7estClass(inti){this.i=i;
voidtestFun(){
System・out.println(i);
6.publicclassVehicleManage{publicstaticvoidmain(String[]args){Vehiclev1=newVehicle();
Personp1,p2;
p仁newPerson();
v1.setOv/ner(p1);
p2=v1.getO\vner();
classVehicle{
Personowner;
publicvoidsetO\vner(Personp1){owner=p1;
publicPersonget0\7ner(){returnowner;
classPersonf
Stringov/nerName;