作业1

写一个Person类,有编号id,姓名name,职位job。
构造方法带三个参数。
方法:
登陆login
注册register
自我介绍talk

写一个学生Student类继承Person类,方法有:考试test
属性有:学费money

写一个老师Teacher类继承Person类,
属性有 工资salary 
方法有:工作work
写一个测试类TestPerson,测试学生和老师
学生:姓名-张三  职位-学生  学费-18000
老师:姓名-李四  职位-老师  工资-8000

解题步骤:
1.先写四个类
2.再写继承关系,构造方法(难点)
3.再写子类特有的属性及方法(注意方法重写)
4.测试

作业2(p309)
定义一个父类:形状类Shapes,里面有两个方法,分别是求面积和周长。
定义一个子类:矩形Rectangle
定义一个子类:三角形 Triagle
定义一个子类:圆 Circle

定义一个测试类:传入圆的半径4 输出周长和面积
                传入矩形的长和宽4,5 输出周长和面积
                传入三角形三边:3,4,5 输出周长和面积

作业3:
设计一个教师类Teacher,其中包含一个方法pay,代表教师工资。
再从教师类派生出普通教师(CommonTeacher)/高级教师(HighTeacher)和特级教师(SuperfineTeacher)三个子类,实现为不同教师发工资的功能。

课后作业

第一题:说明原因

11.13假设Fruit、Apple、Orange、GoldenDelicious和Macintosh声明为如图11-6所示。

 

 

图11-6  GoldenDelicious和Macintosh是Apple的子类;Apple和Orange是Fruit的子类

 

假设给出下面的声明:

Fruit fruit = new GoldenDelicious();

Orange orange = new Orange();

解:这题主要考察  父可以new子,子不可以new父。instancedof判断一个对象是否是其本身或其子类。

回答下面的问题:答案我写了,你们要分析出结果为什么会这样,各小组要讨论要讨论。

  1. fruit instanceof Fruit的值为true吗?果汁是水果的子类吗?true
  2. fruit instanceof Orange的值为true吗?false
  3. fruit instanceof Apple 的值为true吗?T
  4. fruit instanceof GoldenDelicious的值为true吗?可以是子类也可以是本身。
  5. fruit instanceof Macintosh的值为true吗? F
  6. orange instanceof Orange的值为true吗?T
  7. orange instanceof Fruit的值为true吗?T
  8. orange instanceof Apple的值为true吗?F
  9. 假设makeApple Cider方法定义在Apple类中。fruit可以调用这个方法吗?orange可以调用这个方法吗? F父new子,如果不是方法重写,调不了子类特有的方法  F
  10. 假设makeOrangeJuice方法定义在Orange类中。Orange可以调用这个方法吗?fruit可以调用这个方法吗?父类不能调子类特有的方法  F
  11. 语句Orange p=new Apple()是否合法?不合法
  12. 语句Macintosh p=new Apple()是否合法? 不合法
  13. 语句Apple p=new Macintosh()是否合法?合法

 

 

第二题 UML图见文档

11.1(三角形类Triangle)设计一个名为Triangle的类来扩展GeometricObject类。该类包括:

(1)三个名为side1、side2和side3的double数据域表示这个三角形的三条边,它们的默认值是1.0。

(2)一个无参构造方法创建默认的三角形。

(3)一个能创建带指定side1、side2和side3的三角形的构造方法。

(4)所有三个数据域的访问器方法。

(5)一个名为getArea()的方法返回这个三角形的面积。

(6)一个名为getPerimeter()方法返回这个三角形的周长。

(7)一个名为 toString()方法返回这个三角形的字符串描述。

计算三角形面积的公式参见练习题2.21海伦公式。toString()实现如下所示:

return ”Triangle:side1 = “ + side1 + “ side2 = “ + side2 + ” side3 = “ + side3;

 

画出Triangle类和GeometricObject类的UML图。实现这些类。编写一个测试程序,创建边长为1、1.5和1,颜色为yellow,filled为true的Triangle对象,然后显示它的面积、周长、颜色以及是否被填充。

第三题:UML图见文档,英语不懂先翻译。

 

11.2  (Person、Student、Employee、Faculty和Staff类)设计一个名为Person的类和它的两个名为Student和Employee子类。Employee类又有子类:教员类Faculty和职员类Staff。每个人都有姓名、地址、电话号码和电子邮件地址。学生有班级状态(大一、大二、大三或大四)。将这些状态定义为常量。一个雇员有办公室、工资和受聘日期。定义一个名为MyDate的类,包含数据域:year(年)、month(月)、day(日)。教员有办公时间和级别。职员有职务称号。覆盖每个类中的toString方法,显示相应的类名和人名。

     画出这些类的UML图。实现这些类。编写一个测试程序,创建Person、Student、Employee、Faculty和Staff,并且调用它们的toString()方法。有空再补图吧。

第四题(抽象类+继承)

定义一个抽象类Animal

定义一个子类Dog

定义一个子类Cat

根据以下内容分析

    • 狗生活在陆地上(是一种陆生动物),既是哺乳类的也是肉食性的。狗通常的时候和人打招呼会通过“摇摇尾巴”,在被抚摸感到舒服的时候,会“旺旺叫”,而在受到惊吓情绪烦躁时,会发出“呜呜”声;
    • 猫也生活在陆地上(是一种陆生动物),既是哺乳类的也是肉食性的。猫通常的时候和人打招呼会发出“喵~”的声音,在被抚摸情绪很好时,会发出“咕噜咕噜”声,而在受到惊吓时,会发出“嘶嘶”声;
    • 青蛙是一种两栖动物(是一种陆生动物),既不是哺乳类的也不是肉食性的,属于卵生。当青蛙情绪好的时候,会在岸边“呱呱呱”的唱歌,而在受到惊吓时,会“扑通一声跳入水中”;

 

找出属性和方法。

提示:

  1. 首先需要抽取问题描述中对象
  2. 分析每个对象所具有的特征
  3. 分析每个对象所发出的动作
  4. 从这些对象的特征中,抽取类的属性和方法
  5. 分析类之间的关系,画出类结构图

抽象类和对象的基本方法:

  1. 对象--名词

       例如:在句子“小猫喵喵叫”中,我们能够确定一个对象:猫;

  1. 方法--动词

       例如:“旺旺叫”、“喵喵叫”都属于对象发出的动作;

  1. 属性或者特征--形容词

       例如:“哺乳性的”“肉食性的”“卵生的”等等;

  1. “是”的关系--继承

       例如:狗是一种动物,意味着:“狗”类 继承自“动物”类;

  1. “有”的关系--类的属性

       例如:动物都有情绪,意味着:“情绪”是“动物”类的一个属性;

类图如下

 

只能帮到这里了。快写代码。

分类:

技术点:

相关文章: