Java语言程序设计(郑莉)第四章课后习题答案.docx

上传人:大米 文档编号:560237354 上传时间:2023-04-26 格式:DOCX 页数:11 大小:113.54KB
返回 下载 相关 举报
Java语言程序设计(郑莉)第四章课后习题答案.docx_第1页
第1页 / 共11页
Java语言程序设计(郑莉)第四章课后习题答案.docx_第2页
第2页 / 共11页
Java语言程序设计(郑莉)第四章课后习题答案.docx_第3页
第3页 / 共11页
Java语言程序设计(郑莉)第四章课后习题答案.docx_第4页
第4页 / 共11页
Java语言程序设计(郑莉)第四章课后习题答案.docx_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《Java语言程序设计(郑莉)第四章课后习题答案.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计(郑莉)第四章课后习题答案.docx(11页珍藏版)》请在金锄头文库上搜索。

1、Java语言程序设计第四章课后习题答案1.子类将继承父类所有的属性和方法吗?为什么?答:不,子类不能直接访问从父类中继承的私有属性及方法,但可以对公有及保护方法进行访问。2.方法的覆盖与方法的重载有何不同?答:覆盖是运用在子类中实现与父类相同的功能,但采用不同的算法或公式;在名字相同的方法中,要做比父类更多的事情;在子类中需要取消从父类继承的方法。3.声明两个带有无参构造方法的两个类A和B,声明A的子类C,并且声明B为C的一个成员,不声明C 的构造方法。编写测试代码,生成类C的实例对象,并观察结果。/A类public class A public A () System.out.println

2、 (输出A类);/B类public class B public B () System.out.println (输出B类);/C类public class C extends A B b = new B ();/测试类public class test4_3 public static void main (String args) C c = new C();运行结果:4.声明一个基类A,它只有一种非默认构造方法;声明A的子类B,B具有默认方法及非默认方法,并在B的构造方法中调用基类A的构造方法。/A类public class A public A (String lin) System

3、.out.println(A类的非默认构造方法 +lin);/B类public class B extends Apublic B () super (Fuck your teacher);System.out.println (B默认类构造方法);public B (String lin) super (lin);System.out.println (B类非构造方法);/测试类public class test4_4 public static void main (String args) new B();System.out.println ();new B(Fuck my teach

4、er);运行结果:5.声明一个类,它具有一种方法,此方法被重载三次,派生一个新类,并增加一种新的重载方法,编写测试类验证四种方法对于派生类验证四种方法对于派生类都有效。/A类public class A public void showTime () System.out.println (空重载);public void showTime (int l) System.out.println (整形参数重载);public void showTime (char l) System.out.println (字符参数重载);/B类public class B extends A public

5、 void showTime (String l) System.out.println (字符串参数重载);/测试类public class test4_5 public static void main (String args) B b = new B();b.showTime();b.showTime(5);b.showTime(f);b.showTime(林楚金);6.声明一个具有final方法的类,声明一个派生类,并试图对这个方法进行重写,会有什么结果。/A类public class A public final void showTime() System.out.println

6、 (类A中方法); /B类public class B extends Apublic void showTime() System.out.println (类B中方法);/测试类public class test4_6 public static void main (String args) B b = new B();b.showTime();运行结果:(说白了就是B中showTime()的无法覆盖A中showTime(),被覆盖为final,不能覆盖。)7.声明一个final类,并试图声明其派生类,会有什么结果。/A类public final class A /B类public cl

7、ass B extends A/测试类public class test4_7 public static void main (String args) B b = new B();运行结果:(说白了就是无法从A中进行继承)8.什么是抽象类?抽象类中是否一定要包括抽象方法?答:抽象类是一个不完全的类,不能使用new方法进行实例化。抽象类可以包含抽象方法,也可以不包含抽象方法,但有抽象方法的必须是抽象类。9.this和super分别有哪些特殊含义?都有哪些种用法?答:this 表示当前类;super 表示调用父类。在定义类的时候用到,this是当前对象的引用,super是当前对象的父类对象的引

8、用,一般的都是把super用在构造函数中。10.完成下面父类及子类的声明:(1) 声明Student类属性包括学号、姓名、英语成绩、数学成绩、计算机成绩和总成绩。方法包括构造方法、get方法、 set方法、toString方法、equals方法、compare方法(比较两个学生的总成绩,结果分为大于、小于、等于),sum方法(计算总成绩)和testScore方法(计算评测成绩)。注:评测成绩可以取三门课成绩的平均分,另外任何一门课的成绩的改变都需要对总成绩进行重新计算,因此,在每一个set方法中应调用sum方法计算总成绩。public class StudentString id;String

9、 name;float scoreOfenglish;float scoreOfmath;float scoreOfcomputer;float scoreOfsum;/构造方法public Student()public Student(String aid,String aname,float ascoreOfenglish,float ascoreOfmath,float ascoreOfcomputer)this.id=aid;this.name=aname;this.scoreOfenglish=ascoreOfenglish;this.scoreOfmath=ascoreOfmat

10、h;this.scoreOfcomputer=ascoreOfcomputer;/this.scoreOfsum=ascoreOfenglish+ascoreOfmath+ascoreOfcomputer;this.scoreOfsum=sum();/sum方法public float sum()return(this.scoreOfenglish+this.scoreOfmath+this.scoreOfcomputer);/testScore测评成绩/平均分public float testScore()return(this.scoreOfsum/3);/6个get方法 public S

11、tring getid()return(id);public String getname()return(name);public float getscoreOfenglish()return(scoreOfenglish);public float getscoreOfmath()return(scoreOfmath);public float getscoreOfcomputer()return(scoreOfcomputer);public float getscoreOfsum()return(scoreOfsum);/5个set方法public void setid(String

12、 newid)this.id=newid;public void setname(String newname)this.name=newname;public void setscoreOfenglish(float newscoreOfenglish)this.scoreOfenglish=newscoreOfenglish;this.scoreOfsum=sum();public void setscoreOfmath(float newscoreOfmath)this.scoreOfmath=newscoreOfmath;this.scoreOfsum=sum();public voi

13、d setscoreOfcomputer(float newscoreOfcomputer)this.scoreOfcomputer=newscoreOfcomputer;this.scoreOfsum=sum();/toString方法public String toString()return(学号:+this.id+n姓名:+name+n英语:+this.scoreOfenglish+n数学:+this.scoreOfmath+n计算机:+this.scoreOfcomputer+n总分:+this.scoreOfsum);/compare方法/比较2学生总分public void co

14、mpare(Student x)if(this.getscoreOfsum()x.getscoreOfsum()System.out.println(this.getname()+总分大于+x.getname();if(this.getscoreOfsum()x.getscoreOfsum()System.out.println(this.getname()+总分小于+x.getname();else System.out.println(this.getname()+总分等于+x.getname();/equals方法/比较2学生学号是否相等(还没完善)/* * public boolean equals(Object x)if(this.g

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号