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(