




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章课后习题参考答案
1.什么是继承?
答:在已有类的基础上再定义新类,则新类可以拥有已有类中的所有属性和行为。这样定义类的
方式称为继承或派生。
2.什么是域的隐藏和方法的重写?
答:子类中定义的域的名字与继承自父类的域的名字相同,则在子类中隐藏了继承自父类的域,
子类中的方法不能直接用域名访问到父类中的被隐藏的域。
子类对象与父类对象是同一类对象,但子类对象不完全与父类对象相同,子类有自己的特殊
性,所以,当子类继承父类的方法后,子类根据自身的需要可以对继承的方法重新定义,以便使
子类对象表现出与父类不同的行为。这种重新定义的过程称为方法的重写(Override)。
3.this和super有什么作用?
答:
this是对象名,是对象的别名,又称对象的引用。this的作用范围在方法中。当通过一个对
象调用一个方法时,运行时系统会将当前对象的引用传递到方法中,在方法中就可以通过this
访问这个对象。
super表示当前类的直接父类。父类中的域可能被子类隐藏,父类中的方法可能被子类重写。
如果父类中的域被隐藏或方法被重写,则在子类中就访问不到这样的父类成员了。但是,在有些
情况下,还想访问被隐藏的域或被重写的方法,这种情况下则可以通过关键字super实现相应的
访问。
4.什么是多态性?如何实现多态性?
答:同一类对象表现出的不同行为称为多态。多态的实现一定得在有继承关系的对象中。例如,
有一个类Base,它派生出多个子类,子类下面还派生子类,这些子类的对象都可以称为B类的
对象(赋值兼容规则),但是,每一个子类的对象的行为都与其他子类对象或Base类对象的行为
不同,这种行为上的不同称为多态性。
5.在一个学校中有教师和学生两类人员。学生信息有身份证号、学号、专业、姓名、性别、年
龄及数学、英语、Java程序设计三门课程的成绩。教师信息有身份证号、教师号、专业、姓名、
性别、年龄及授课的学时数。创建学生和教师的对象并输出对象的信息。
答:
importjava.util.*;
publicclassexercise06_05
{
publicstaticvoidmain(String[]args)
(
intid;
Stringcode;
Stringprofession;
Stringname;
Stringsex;
intage;
intmath;
intenglish;
intjava;
Scannerreader=newScanner(System.in);
id=reader.nextlnt();
code=reader.next();
profession=reader.next();
name=reader.next();
sex=rcader.next();
age=reader.nextlnt();
math=reader.nextlnt();
english=reader.nextlnt();
java=reader.ncxtlnt();
Studentstu=newStudent(id,code,profession,name,sex,age,math,english,java);
stu.output();
inttimes;
id=reader.nextlnt();
code=reader.next();
profession=reader.next();
name=reader.next();
sex=reader.next();
age=reader.nextlnt();
times=reader.nextlnt();
Teacherteacher=newTeacher(id,code,profession,name,sex,age,times);
teacher.output();
}
}
classStudent
(
intid;
Stringcode;
Stringprofession;
Stringname;
Stringsex;
intage;
intmath;
intenglish;
intjava;
publicStudent(){}
publicStudent(intid,Stringcode,Stringprofession,Stringname,Stringsex,intage,intmath,int
english,intjava)
this.id=id;
this.code=code;
fession=profession;
=name;
this.sex=sex;
this.age=age;
this.math=math;
this.english=english;
this.java=java;
)
publicvoidoutput()
{
System.out.println(Hid-'+id);
Systcm.out.println(ncode-'4-code);
System.out.println(,,profession=,,+profession);
System.out.println(,,name=,,+name);
System.out.println(,,sex="+sex);
System.out.println(Mage=n+age);
System.out.println(,,math-,+math);
System.out.println(,,english=,,+english);
System.out.println(njava=,,-^ava);
}
classTeacher
(
intid;
Stringcode;
Stringprofession;
Stringname;
Stringsex;
intage;
inttimes;
publicTeacher(){}
publicTeacher(intid,Stringcode,Stringprofession,Stringname,Stringsex,intage,inttimes)
(
this.id=id;
this.code=code;
fession=profession;
=name;
this.sex=sex;
this.age=age;
this.times=times;
publicvoidoutput()
{
System.out.println(nid=,'+id);
System.out.printl^^code-'+code);
System.out.println(nprofession=n+profession);
System.out.println(nname=n+name);
System.out.println(,,sex=,,+sex);
System.out.println(nage=n+age);
System.out.println(,,times=',+times);
6.有若干个直柱体(底面与柱面垂直),其底面可能是圆形、矩形或三角形。已知柱体的高度、
圆的半径、矩形的宽度和高度及三角形的三边长(一定能构成三角形),计算柱体的体积和表面
积(包括两个底的面积)。
答:
importjava.util.*;
publicclassexercise06_06
(
publicstaticvoidmain(String[]args)
(
Scannerreader=newScanner(System.in);
doubletl,t2,t3,h;
Shapesh=null;
Triangletr;
Rectanglere;
Circleci;
inttype;//l=Circle;2=Rectangle;3=Triangle
type=reader.nextlnt();
if(type==l)
(
11=reader.nextDouble();
ci=newCircle(tl);
sh=ci;
}
elseif(type==2)
(
tl=reader.nextDouble();
t2=reader.nextDouble();
re=newRectangle(tl,t2);
sh=re;
elseifi(type==3)
tl=reader.nextDouble();
t2=reader.nextDouble();
t3=rcader.nextDouble();
tr=newTriangle(tl,t2,t3);
sh=tr;
)
h=reader.nextDouble();
StraightCylindersc=newStraight_Cylinder(sh,h);
sc.output();
}
}
abstractclassShape
(
publicabstractdoublegctPerimeter();
publicabstractdoublegetArea();
}
classCircleextendsShape
(
doubler;
publicCircle(){}
publicCircle(doubler)
{
this.r=r;
}
publicdoublegetPerimeter()
(
return2*Math.PI*r;
}
publicdoublegetArea()
(
returnMath.PI*r*r;
}
}
classRectangleextendsShape
{
doublel,w;
publicRectangle(){}
publicRectangle(double1,doublew)
{
this.M;
this.w=w;
publicdoublegetPerimeter()
{
return2*(l+w);
}
publicdoublegetArea()
{
returnl*w;
classTriangleextendsShape
(
doublea,b,c;
publicTriangle(){}
publicTriangle(doublea,doubleb,doublec)
{
this.a=a;
this.b=b;
this.c=c;
}
publicdoublegetPerimeter()
{
returna+b+c;
}
publicdoublegetArea()
(
doubles=(a+b+c)/2;
returnMath.sqrt(s*(s-a)*(s-b)*(s-c));
}
)
classStraight_Cylinder
(
Shapebottom;
doubleheight;
publicStraight_Cylindcr(){}
publicStraight_Cylinder(Shapes,doubleh)
{
bottom=s;
height=h;
}
publicdoublegetSurfacearea()
return2*bottom.getArea()+bottom.getPerimeter()*height;
publicdoublegetVblume()
{
returnbottom.getArea()*height;
}
publicvoidoutput()
(
System.out.println(,,Vblume=,,+getVdlume()-i-nSurfaccarca=*,+getSurfacearea());
7.某学校教师的工资=基本工资+课时补贴。教授的基本工资为5000元,每学时补贴70元;副
教授的基本工资为3500元,每学时补贴60元;讲师的基本工资2600元,每学时补贴55元。已
知每个教师的学时数,计算每个教师的每月工资数。
答:
importjava.util.*;
classTeacher
(
doublebaseSalary;
doublesubsidy;
intpHours;
publicTeacher(doublebs,doublesb,inth)
{
baseSalary=bs;
subsidy=sb;
pHours=h;
}
publicvoidoutput()
(
System.out.println(baseSalary+subsidy*pHours);
}
}
classProfessorextendsTeacher
(
publicProfessor(inth)
{
supcr(5000,70,h);
}
)
classviceProfessorextendsTeacher
publicviceProfessor(inth)
super(3500,60,h);
)
classlecturerextendsTeacher
(
publiclecturer(inth)
(
super(2600,55,h);
}
}
publicclassexercise06_07
(
publicstaticvoidmain(String[]args)
(
Scannerreader=newScanner(System.in);
inttype,hs;
type=reader.nextlnt();
hs=reader.nextlnt();
Teacherteacher=null;
if(type==l)
(
teacher=newProfessor(hs);
)
elseif(type==2)
(
teacher=newviceProfessor(hs);
}
elseiRtype==3)
(
teacher=newlecturer(hs);
}
teacher.output();
8.某家庭有电视机、洗衣机、电冰箱和微波炉。编程序显示家用电器的工作状态:电视机在播
放节目,洗衣机在洗衣服,电冰箱在制冷及微波炉在加热食物。
答:
importjava.util.*;
abstractclassElectricAppliance
publicElectricApplianceQ
publicabstractvoidworking();
classTVextendsElectricAppliance
{
publicTV()
(
}
publicvoidworking()
{
System.out.println("电视机正在播放节目");
}
}
classWashingMachineextendsElectricAppliance
{
publicWashingMachine()
{
}
publicvoidworking()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 海西蒙古族藏族自治州天峻县2025年数学五年级第二学期期末监测模拟试题含答案
- 贵州电子商务职业技术学院《EDA技术》2023-2024学年第二学期期末试卷
- 安徽现代信息工程职业学院《中国古代文学史(1)》2023-2024学年第二学期期末试卷
- 山东省潍坊市临朐一中2025年高三下学期第三次验收物理试题理试卷含解析
- 黑龙江东方学院《商务数据分析》2023-2024学年第二学期期末试卷
- 阀岛箱:现代工业中的气动控制核心
- 广州城市职业学院《画法几何与建筑制图》2023-2024学年第二学期期末试卷
- 共享职工之家建设存在问题和原因以及对策建议
- 美容院环境满意度调查
- 抗滑桩工程施工方案
- 2025年华侨港澳台学生联招考试英语试卷试题(含答案详解)
- 2025年人教版七年级历史下册阶段测试试卷含答案
- 林下经济中药材种植基地建设项目可行性研究报告立项新版
- 2025中国移动招聘在线统一笔试高频重点提升(共500题)附带答案详解
- 急诊预检分诊标准
- 第四单元 第二课 创作学校电子相册说课稿 2024-2025学年西交大版(2024)初中信息技术七年级上册
- 2025年1月浙江高考首考英语应用文范文讲评课件
- 2024年06月湖南浏阳农村商业银行股份有限公司社会招考30名员工笔试历年参考题库附带答案详解
- 城市管理执法人员着装规范
- 专科护理人才培养
- 《皮肤病中成药导引》课件
评论
0/150
提交评论