JAVA习题4参考答案_第1页
JAVA习题4参考答案_第2页
JAVA习题4参考答案_第3页
JAVA习题4参考答案_第4页
JAVA习题4参考答案_第5页
已阅读5页,还剩40页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

习题四参照答案

一、判断题

1.对2.对3.错4.错5.对

6.错8.错9.对10.对11.错

12.对13.错14.对15.对16.错

17.对18•对19.错20.错

【解释】

◊第3题:本题考察抽象类的特性。抽象类中可包括构造措施、抽象措施和详细实现

的措施以及常量和变量,但不能直接实例化,一般可对抽象类的子类实例化,实例化对象

引用可以是抽象类类型。

。第11题:本题考察子类中可以写的措施。子类可以继承父类的措施,也可以巷盖

父类的措施,也可以新增长措施,新增长的措施与从父类继承的措施可构成重载。

。第13题:本题考察abstract的使用方法。abstract可修饰类和措施,但不能修饰

属性,即不能修饰类的组员变量。

◊第16题:本题考察final修饰的措施的特性。final修饰的措施不能被覆盖,但可

以有重载的措施。

二、选择题

1.B2.B3、A4.B5.A

6.C7.B8.D9.B10.B

11.A12.D13、D14.A15.D

16.D17、C18.D19、AD20、CD

21、C22、C23、C24、B25.B

26.D28.A

【解释】

令第7题:本题考察对继承、覆盖和重载的理解,属于难点。本题4个选项中的措施

名与父类定义的措施名都相似。选项A的措施有3个参数,选项C的措施有1个参数,都

能与从父类继承的措施构成重载,可以加入子类Child中;选项B和选项D措施中的参数

类型和个数都与父类定义的措施相似,由于父类定义的措施用public修饰,要想覆盖父类

定义的措施,子类的措施也必须用public修饰,因此,选项D可以加入子类Child中,但

选项B不行。

。第8、10、13和14题:这几题重要考察子类中具有覆盖措施的调用状况。子类对

象调用措施时,首先调用子类中同名和参数形式(参数个数、类型和次序)一致的措施,否

则就调用父类中定义的匹配的措施。

◊第9题:本题考察对类实现接口的理解。在Java的接口中包括抽象措施和常量。

类实现接口时,需实现接口中的所有措施,并可直接使用接口中定义的常量(等同于从接口

中继承了这些常量)。本题中的接口B定义了"intk=10/编译时会自动加上final,表达

k为常量。因此,本题选B。

。第11题:本题考察父类中有static修饰和没有static修饰的措施被子类覆盖的情

形。当父类的措施被static修饰时,子类中覆盖的措施也必须用static修饰。反之,父类

的措施没有static修饰,子类中覆盖的措施也不用static修饰。因此,本题选A。

。第12和16题:这2题考察子类继承父类时构造措施的定义。子类继承父类时,若

父类定义了有参数的构造措施,而没有定义无参数的构造措施,那么在子类中的构造措施

必须用super语句去调用父类定义的有参数的构造措施,否则无法通过编译。因此,提议

在定义父类时,如写了构造措施,最佳写上一种无参数的构造措施。

令第18题:本题考察类的继承。选项A中的m仅在父类的措施参数中定义,无法给

变量i赋值;选项B中的b是非静态组员变量,在静态的main措施中无法直接给i赋值;

父类定义的a是私有的,无法被子类继承,因此选项C也不对。选项D中的措施change

是父类定义的公共措施,可以被子类继承和调用。因此,本题选D。

。第23题:本题考察类的构造措施。程序中第2行为构造措施,第5行为措施名,

Test有void修饰,它不是构造措施,可作为实例措施。程序编译能通过。运行时,第9

行实例化Test对象,调用第2行的构造措施,输出3;然后执行第9行调用第5行的措施,

输出2;最终执行11行,输出1。因此,本题选C。

。第24题:本题考察子类实例化时的过程

三、程序阅读题

1.int

2.(l)abstract(2)getName(3)extends(4)Stringmajor(5)getMajor

3.32

4.resultOne=0

resultTwo=48

resultThree=20

5.Pine

Tree

Oops

6.MyFunc

7.输出成果为:2

8.hi!

IamTom

Howdoyoudo?

9.第2行改为finaldoublePI=3.14;

第5彳亍的extends改为implements

第10行的措施申明增长一种public,改为publicdoublearea()

10.

15

11

10

11.

2

2

1

四、编程题

1.参照代码如下:

publicclassCircle{

doubleradius;

publicCircle(){

radius=0;

)

publicCircle(doubler){

radius=r;

)

publicdoublegetRadius(){

returnradius;

)

publicdoublegetPerimeter()(

return2*Math.PI*radius;

)

publicdoublegetArea(){

returnMath.Prradius*radius;

)

publicvoiddisp(){

System.out.println("圆的半径为"+getRadius()+"周长为"+getPerimeter()+

面积为"+getArea());

)

)

publicclassCylinderextendsCircle{

doubleheight;

publicCylinder(double^doubleh){

radius=r;

height=h;

)

publicdoublegetHeight(){

returnheight;

)

publicdoublegetCylinderArea(){

return2*Math.PI*radius*(radius+height);

)

publicdoublegetVol(){

returnMath.PI*radius*radius*height;

)

publicvoiddisVol(){

System.out.println(■圆柱体的体积为"+getVol());

)

)

2.参照代码如下:

interfaceShape{

publicabstractdoublegetArea();

)

classCircleimplementsShape{

privateintr;

Circle(intr){

this.r=r;

)

publicdoublegetArea(){

return3.14*r*r;

)

)

classTestCircle{

publicstaticvoidmain(Stringargs[]){

Circlec=newCircle(5);

System.out.println("园的面积为:"+c.getArea());

)

)

3.参照代码如下:

interfaceshape{

doublearea();

)

classTriangleimplementsshape{

privatedoublea,b,c;

publicTriangle(doublea,doubleb,doublec){

this.a=a;

this.b=b;this.c=c;

)

publicdoublearea(){

doublep=(a+b+c)/2;

returnMath.sqrt(p*(p-a)*(p-b)*(p-c));

)

)

classCircleimplementsshape{

privatedoubler;

publicCircle(doubler)(

this.r=r;

}

publicdoublearea(){

returnMath.PI*r*r;

)

)

classRectangleimplementsshape{

privatedoublewidth,height;

publicRectangle(doublej,doublek){

width=j;height=k;

)

publicdoublearea(){

returnwidth*height;

)

)

publicclassTestShape{

publicstaticvoidmain(Stringargs[]){

shapes[]=newshape[3];

s[O]=newTriangle(3,4,5);

s[l]=newCircle(3.5);

s[2]=newRectangle(3.5,4.0);

for(inti=0;i<s.length;i++)

System.out.println(s[i].area());

)

)

4.不需要做

5.

(1)参照代码如下:

abstractpublicclassAnimal{

publicStringname;

publicintage;

publicdoubleweight;

publicvoidshowlnfo(){

System.out.printin("动物名为"+name+"年龄为"+age+”岁,重量为

»weight);

)

abstractpublicvoidmove();

abstractpublicvoideat();

)

(2)参照代码如下:

publicclassBirdextendsAnimal{

publicBird(Stringnamejntage,doubleweight){

=name;

this.age=age;

this.weight二weight;

)

publicvoidshowlnfo()(

System,out.println("鸟名为"+name+"年龄为"+age+"重量为'weight);

)

publicvoidmove(){

System.out.println(name+"用翅膀在天空上!");

)

publicvoideat(){

System.out.println(name+"喜欢吃虫子!");

)

)

(3)参照代码如下:

publicclassTestAnimal{

publicstaticvoidmain(Stringargs[]){

Animalbird=newBird("麻雀,1,03);

bird.showInfoO;

bird.moveQ;

bird.eatQ;

)

6.参照代码如下:

publicclassPeople{

publicStringname;

publicStringsex;

publicStringbothnum;

publicPeople(){};

publicStringprintlnfo(){

return"姓名:"+name+'\n'+"性另!J:"+sex+'\n'+"出生年月:"+bothnum;

)

)

classTeacherextendsPeople{

publicStringschool;

publicintworkID;

publicStringprintlnfo(){

returnsuper.printlnfoO+'Xn'+"^?:n+school+'\n'++workID;

)

)

classStudentextendsPeople{

publicStringschool;

publicintId;

publicStringdiscipline;

publicStringgrade;

publicStringclasses;

publicStringprintlnfo(){

returnsuper.printlnfo()+'\n'+"^:t^:"+school+'\n'+"^-^-:"+Id+'\n'+"专业:

"+discipline+'\n'+"年龄"+grade+'\n'+"班级:1classes;

)

)

classTestPerson{

publicstaticvoidmain(Stringargs[]){

Teachert=newTeacher();

="Tom";

t.sex="男

t.bothnum="19820808";

t.school="浙工业大学”;

t.workID=010408;

System.out.println(t.printlnfo());

Students=newStudent();

="Jack";

s.sex="男■;

s.bothnum="19920305";

s.Id=266302;

s.school="浙江工业大学";

s.discipline="软件工程”;

s.grade="大一";

s.classes="2班";

System.out.println(s.printlnfoQ);

)

)

7.参照代码如下:

publicclass证件{

String编号;

String姓名;

String出牛年月;〃格式mm/dd/yy

String部门;

public证件(){}

public证件(Stringid,Stringname,Stringdate,Stringdept)

编号二id;

姓名二name;

出生年月=date;〃格式mm/dd/yy

)

publicvoidsetID(Stringid){

编号二id;

)

publicvoidsetName(Stringname){

姓名:name;

)

publicvoidsetDate(Stringdd){

出生年月二€14

)

publicvoidsetDept(Stringdd){

部门二dd;

)

publicvoiddisp(){

System.ovtprintln("姓名:"+姓名+"证件号:"+编号+"出生日期"+出生年月+"所属

部门"+部门);

)

)

class工作证extends证件{

String职务;

String发证日期;//格式mm/dd/vy

public工作证(){)

public工彳乍证(Stringid,Stringname,Stringdate,Stingdept,Stringtitle,String

dd)

{super(id,name,date,dept);

职务二title;

发证日期二dd;

)

publicvoidsetTitile(Stringdd){

职务二dd;

)

publicvoidset发证日期(Stringdd){

发证日期二dd;

)

publicvoiddisp(){

super.dispQ;

System.mtprintln("职务:■+职务+"发证日期」+发证日期);

)

}

class学生证extends证件{

String专业;

String入校时间;〃格式mm/dd/yy

String注册信息;

public学生证(){)

学生证

public(Stringid,Stringname,Stringdate,Stringdept;String

majocStringdd,Stringmsg}

{super(id,name,date,dept);

专业:major;

入校时间二dd;

注册信息=msg;

)

publicvoiddisp(){

super.dispO;

System.ovtpnntln("专业:・+专业+"入校时间:"+入校时间+"注册信息”+注册信息);

)

}

8.(1)参照代码如下:

interfaceAreainterface(

publicstaticfinaldoublepai=Math.PI;

publicabstractdoublearea();

)

(2)参照代码如下:

publicclassRectangleimplementsArealnterface{

privatedoublex;

privatedoubley;

publicRectangle(doublex,doubley){

this.x=x;

this.y=y;

System.out.println(“长方形的长-+x+"宽为:"+y);

)

publicdoublearea(){

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论