Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类)设计一个名为Person的类及其两个名为Student和Employee的子类
Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类)
- 题目
- 缺陷
- UML图
- 代码
- Test02_MyDate.java:用于参考的MyDate
- Test02_Person.java:Person类
- Test02_Student.java: Student类
- Test02_Employee.java:Employee类
- Test02_Faculty.java:Faculty类
- Test02_Staff.java:Staff类
- Test02.java:测试程序所在类
题目
11.2(Person、Student、Employee、Faculty和Staff类)设计一个名为Person的类及其两个名为Student和Employee的子类。Employee类又有子类:教员类Faculty和职员类Staff。每个人都有姓名、地址、电话号码和电子邮件地址。学生有班级状态(大一、大二、大三或大四)。将这些状态定义为常量。一个雇员涉及办公室、工资和受聘日期。使用编程练习题10.14中定义的MyDate类为受聘日期创建一个对象。教员有办公时间和级别。职员有头衔。重写每个类中的toString方法,显示相应的类名和人名。
画出这些类的UML图并实现这些类。编写一个测试程序,创建Person、Studet、Employee、Faculty和Staff,并且调用他们的toString方法,显示响应的类名和人名
画出这些类的UML图并实现这些类。编写一个测试程序,创建Person Student Employee Faculty和Staff,并调用它们的toString方法
缺陷
题目很冗长,但介绍还不全
各个方法有getter and setter、构造器方法没有、输出语句格式是什么……这些都没说
全凭感觉
UML图
博主刚刚入门UML,还会有很多问题,欢迎大佬指正
代码
Test02_MyDate.java:用于参考的MyDate
点击这里浏览编程练习题10.14中定义的MyDate类
import java.util.GregorianCalendar;public class Test02_MyDate {int year, month, day; // 月从0开始public Test02_MyDate(){GregorianCalendar gc = new GregorianCalendar();year = gc.get(GregorianCalendar.YEAR);month = gc.get(GregorianCalendar.MONTH);day = gc.get(GregorianCalendar.DAY_OF_MONTH);}public Test02_MyDate(long l){GregorianCalendar gc = new GregorianCalendar();gc.setTimeInMillis(l);year = gc.get(GregorianCalendar.YEAR);month = gc.get(GregorianCalendar.MONTH);day = gc.get(GregorianCalendar.DAY_OF_MONTH);}public Test02_MyDate(int year, int month, int day){this.year = year;this.month = month;this.day = day;}public void setDate(long elapsedTime){GregorianCalendar gc = new GregorianCalendar();gc.setTimeInMillis(elapsedTime + toCalender(year, month, day));year = gc.get(GregorianCalendar.YEAR);month = gc.get(GregorianCalendar.MONTH);day = gc.get(GregorianCalendar.DAY_OF_MONTH);}public long toCalender(int year, int month, int day){day += year * 365;switch (month){case 11: day += 31;case 10: day += 30;case 9: day += 31;case 8: day += 30;case 7: day += 31;case 6: day += 31;case 5: day += 30;case 4: day += 31;case 3: day += 30;case 2: day += 31;case 1: day += 28;}return (long) day * 24 * 60 * 60 * 1000;} }Test02_Person.java:Person类
public class Test02_Person {int name, address, phoneNumber, email;// 重写toString方法@Overridepublic String toString(){return "Test02_Person -- " + name;} }Test02_Student.java: Student类
public class Test02_Student extends Test02_Person{static String dayi = "freshman";static String daer = "sophomore";static String dasan = "junior";static String dasi = "senior";// 重写toString方法@Overridepublic String toString(){return "Test02_Student -- " + name;} }Test02_Employee.java:Employee类
import java.util.Date;public class Test02_Employee extends Test02_Person{// 办公室String office;// 工资int salary;// 受聘日期Date dateOfEmploy;// 为受聘日期创建一个对象public static void main(String[] args) {Test02_MyDate my = new Test02_MyDate();}// 重写toString方法@Overridepublic String toString(){return "Test02_Employee -- " + name;} }Test02_Faculty.java:Faculty类
import java.util.Date;public class Test02_Faculty extends Test02_Employee{// 办公时间Date workTime;// 级别int level;// 重写toString方法@Overridepublic String toString(){return "Test02_Faculty -- " + name;} }Test02_Staff.java:Staff类
public class Test02_Staff extends Test02_Employee{// 头衔String title;// 重写toString方法@Overridepublic String toString(){return "Test02_Staff -- " + name;} }Test02.java:测试程序所在类
public class Test02 {public static void main(String[] args) {// 创建多个对象并调用toString方法Test02_Person p = new Test02_Person();System.out.println(p.toString());Test02_Student stu = new Test02_Student();System.out.println(stu.toString());Test02_Employee e = new Test02_Employee();System.out.println(e.toString());Test02_Faculty f = new Test02_Faculty();System.out.println(f.toString());Test02_Staff staff = new Test02_Staff();System.out.println(staff.toString());} }总结
以上是生活随笔为你收集整理的Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类)设计一个名为Person的类及其两个名为Student和Employee的子类的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Java黑皮书课后题第11章:11.1(
- 下一篇: Java黑皮书课后题第11章:11.3(