解析java程序设计第四章课后答案

上传人:zhan****gclb 文档编号:197317220 上传时间:2023-04-04 格式:DOC 页数:13 大小:59KB
收藏 版权申诉 举报 下载
解析java程序设计第四章课后答案_第1页
第1页 / 共13页
解析java程序设计第四章课后答案_第2页
第2页 / 共13页
解析java程序设计第四章课后答案_第3页
第3页 / 共13页
资源描述:

《解析java程序设计第四章课后答案》由会员分享,可在线阅读,更多相关《解析java程序设计第四章课后答案(13页珍藏版)》请在装配图网上搜索。

1、第4章习题解答1类的继承的主要好处是什么?Java中支持类的多继承形式吗?继承是一种由已有的类创建新类的机制。利用继承,我们可以先创建一个拥有共有属性的一般类,根据该一般类再创建具有特殊属性的新类,新类自动拥有一般类的属性和行为,并根据需要可以增加新的属性和行为,或者改变父类的行为。类的继承的主要好处是代码复用。Java不支持类的多继承形式。2解释一下方法重载和方法覆盖的概念,并对两者加以对比。如果子类中定义方法所用的名称、返回类型和参数表和父类中方法所使用的完全一样,但具体实现不同,则称子类方法覆盖了父类中的方法。在同一类中,如果方法名称相同,但参数表不同,则称为方法重载。3编写一个学生和教

2、师的数据输入和显示程序。学生数据有编号、姓名、班号和成绩,教师数据有编号、姓名、职称和部门。要求将编号、姓名输入和显示设计成一个类Person,并作为学生类Student和教师类Teacher的父类。import java.util.*;class Person private String name; private int id; public void input() Scanner sc=new Scanner(System.in); name=sc.nextLine(); id=sc.nextInt(); public void display() System.out.printl

3、n( class Student extends Person private int classNo; private int score; public void input() super.input(); Scanner sc=new Scanner(System.in); classNo=sc.nextInt(); score=sc.nextInt(); public void display() super.display(); System.out.println(classNo=+classNo+ score=+score); public static void main(S

4、tring args) Student s=new Student(); s.input(); s.display(); 4创建Animal(动物):Mouse,Dog等的一个继承分级结构。在父类中,提供适用于所有Animal的方法,并在子类中覆盖它们,从而根据不同类型的Animal采取不同的行动。abstract class Animal public abstract void speak();class Mouse extends Animal public void speak() System.out.println(miao.); class Dog extends Animal

5、public void speak() System.out.println(wang.); public class Example public static void main(String args) Mouse m=new Mouse(); m.speak(); Dog d=new Dog(); d.speak(); 5. 解释super关键字的不同用法。调用超类的构造方法。引用超类的成员变量及方法。6阅读以下程序,给出运行结果。class SuperClassint x;SuperClass()x=3;System.out.println(in SuperClass : x= +x

6、);void doSomething() System.out.println(in SuperClass.doSomething();class SubClass extends SuperClassint x;SubClass()super();x=5;System.out.println(in SubClass :x=+x);void doSomething()super.doSomething();System.out.println(in SubClass.doSomething();System.out.println(super.x=+super.x+ sub.x=+x);pub

7、lic class Inheritancepublic static void main(String args)SubClass subC=new SubClass();subC.doSomething();运行结果:in SuperClass : x=3in SubClass :x=5in SuperClass.doSomething()in SubClass.doSomething()super.x=3 sub.x=57介绍抽象类和抽象方法的概念,一个抽象类的所有方法是否都必须为抽象方法?有时在类库开发中,要创建一个体现某些基本行为的类,并为该类声明方法,但无法在该类中实现全部具体行为,

8、取而代之,在子类中具体实现该方法。面向对象程序设计中,利用抽象类(abstract class),可以声明仅定义了部分实现的类,让该类的子类提供某些或全部方法的具体实现。抽象类通常代表一个抽象概念,它提供一个继承的出发点。一个抽象类的所有方法并非都必须为抽象方法。 8通过查看Java API文档,在Java类库中寻找abstract类和abstract方法的一些例子。 例如:java.io包中,Writer类即为一个抽象类。9 定义一个Shape抽象类,在此基础上派生出Rectangle和Circle类,二者都有GetArea()方法计算对象的面积,GetPerim()方法计算对象的周长。使用

9、Rectangle类派生一个新类Square,并编写测试程序加以测试。abstract class Shape abstract double GetArea(); abstract double GetPerim();class Rectangle extends Shape double w,h; Rectangle(double w,double h) this.w=w; this.h=h; double GetArea() return w*h; double GetPerim() return 2*(w+h); class Circle extends Shape double r;

10、 Circle(double r) this.r=r; double GetArea() return 2*3.1415*r*r; double GetPerim() return 2*3.1415*r; class Test public static void main(String args) Circle c=new Circle(3.5); Rectangle r=new Rectangle(2.5,6); System.out.println(圆形的周长=+c.GetPerim()+ 面积=+c.GetArea(); 10. 在Java类库中寻找final类和final方法的一些例

11、子。 java.lang.String类即为final类。 11. 解释接口的概念,Java中接口可以有多继承形式吗?Java中,一个接口(interface)仅仅描述方法的特征,而不给出方法的具体实现;而类不仅给出方法的特征,还给出方法的具体实现。因此,接口把方法的特征和实现分离开,可以将接口看作是代表某一个角色,而实现这个接口的类便是扮演这个角色的演员,一个角色可以由不同的演员来演,而不同的演员之间除了扮演一个共同的角色外,并不要求有任何其它的共同之处。 Java中接口可以有多继承形式。12. 阅读以下程序,给出运行结果。interface ShowMessage void showTra

12、deMark();class TV implements ShowMessage public void showTradeMark() System.out.println(我是电视机); class PC implements ShowMessage public void showTradeMark() System.out.println(我是电脑); public class Example public static void main(String args) ShowMessage sm; sm=new TV(); sm.showTradeMark(); sm=new PC()

13、; sm.showTradeMark(); 运行结果如下:我是电视机我是电脑13编写一个实现Comparable接口类型的类BankAccount。根据递增的存款额排列银行中的账号,并提供一个测试程序,对银行账号数组列表进行排序。/BankAccount.javapackage exercise4_13;class BankAccount implements Comparableprivate String bankId;private float deposit;BankAccount(String Id,float deposit)bankId = Id;this.deposit = d

14、eposit;public String toString()return 账号: + bankId + t存款: + deposit;public int compareTo(BankAccount other)if(deposit other.deposit) return 1;return 0;/Test.javapackage exercise4_13;import java.util.Arrays;public class Test /* * param args */public static void main(String args) BankAccount b = new B

15、ankAccount3;b0 = new BankAccount(001,30);b1 = new BankAccount(002,50);b2 = new BankAccount(003,40);Arrays.sort(b);for(int i = 0;i b.length;i +)System.out.println(bi.toString();System.exit(0);14为某单位编写一个程序,用来计算每一种交通工具运行1000公里所需的时间。现有两种工具:Car007 和Plane,需要编写三个类:ComputeTime.java,Plane.java,Car007.java和接口

16、Vehicle.java,要求在未来如果增加第3种交通工具的时候,不必修改以前的任何程序,只需要编写新的交通工具的程序。各种交通工具对象的速度由各个交通工具类中相应的返回运行速度的方法来获取。/Vehicle.javapackage exercise4_14;interface Vehicle int getVelocity();/Plane.javapackage exercise4_14;class Plane extends ComputeTime implements Vehicleprivate int velocity;Plane(int velocity)this.velocit

17、y = velocity;public int getVelocity()return velocity;float Time()return (float)super.getDistance()/velocity;/ComputeTime.javapackage exercise4_14;abstract class ComputeTime private int distance = 1000;int getDistance()return distance;abstract float Time();/Car007.javapackage exercise4_14;class Car00

18、7 extends ComputeTime implements Vehicleprivate int velocity;Car007(int velocity)this.velocity = velocity;public int getVelocity()return velocity;float Time()return (float)super.getDistance()/velocity;/Test.javapackage exercise4_14;public class Test public static void main(String args) Plane p = new

19、 Plane(20);Car007 c = new Car007(50);System.out.println(速度为+p.getVelocity()+公里每小时的飞机运行1000公里需+p.Time()+小时);System.out.println(速度为+c.getVelocity()+公里每小时的汽车运行1000公里需+c.Time()+小时);System.exit(0);15编写一个程序实现小型公司的工资管理。该公司主要有4类人员:经理、兼职技术人员、销售员和销售经理。要求存储这些人员的编号、姓名和月工资,计算月工资并显示全部信息。月工资计算办法是:经理拿固定月薪7000元;兼职技术人员按每小时80元领取月薪;销售员按该当月销售额的3提成;销售经理既拿固定月工资也领取销售提成,固定月工资为4000元,销售提成为所管辖部门当月销售总额的5%。提示:利用java的接口功能来模拟多继承。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!