Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类)
题目
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
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);
}