Java 案例九 員工類系列定義
阿新 • • 發佈:2019-01-14
1題目
某IT公司有多名員工,按照員工負責的工作不同,進行了部門的劃分(研發部員工、維護部員工)。研發部根據所需研發的內容不同,又分為JavaEE工程師、Android工程師;維護部根據所需維護的內容不同,又分為網路維護工程師、硬體維護工程師。
公司的每名員工都有他們自己的員工編號、姓名,並要做它們所負責的工作。
- 工作內容
- JavaEE工程師:員工號為xxx的 xxx員工,正在研發淘寶網站
- Android工程師:員工號為xxx的 xxx員工,正在研發淘寶手機客戶端軟體
- 網路維護工程師:員工號為xxx的 xxx員工,正在檢查網路是否暢通
- 硬體維護工程師:員工號為xxx的 xxx員工,正在修復印表機
請根據描述,完成員工體系中所有類的定義,並指定類之間的繼承關係。進行XX工程師類的物件建立,完成工作方法的呼叫。
2案例分析
- 根據上述部門的描述,得出如下的員工體系圖
- 根據員工資訊的描述,確定每個員工都有員工編號、姓名、要進行工作。則,把這些共同的屬性與功能抽取到父類中(員工類),關於工作的內容由具體的工程師來進行指定。
- 工作內容
- JavaEE工程師:員工號為xxx的 xxx員工,正在研發淘寶網站
- Android工程師:員工號為xxx的 xxx員工,正在研發淘寶手機客戶端軟體
- 網路維護工程師:員工號為xxx的 xxx員工,正在檢查網路是否暢通
- 硬體維護工程師:員工號為xxx的 xxx員工,正在修復印表機
- 工作內容
- 建立JavaEE工程師物件,完成工作方法的呼叫
- 根據員工體系圖,完成類的定義
定義員工類(抽象類)
package cn.itcast.demo07; /* * 員工類: * 姓名 ,工號 , */ public abstract class Employee { private String name; private String id; public void setName(String name){ this.name = name; } public void setId(String id){ this.id = id; } public String getName(){ return name; } public String getId(){ return id; } public abstract void work(); }
- 定義研發部員工類Developer 繼承 員工類Employee
package cn.itcast.demo07; /* * 研發類繼承員工類 */ public abstract class Develop extends Employee{ public abstract void work(); }
- 定義維護部員工類Maintainer 繼承 員工類Employee
package cn.itcast.demo07; /* * 維護類繼承員工類 */ public abstract class Maintainer extends Employee{ public abstract void work(); }
- 定義JavaEE工程師 繼承 研發部員工類,重寫工作方法
package cn.itcast.demo07; /* * JavaEE工程師 繼承 研發部員工類 */ public class JavaEE extends Develop { public void work(){ System.out.println("員工號為"+getId()+"的"+getName()+"員工,正在研發淘寶網"); } }
- 定義Android工程師 繼承 研發部員工類,重寫工作方法
package cn.itcast.demo07; /* * Android工程師繼承develop類 */ public class Android extends Develop{ public void work(){ System.out.println("員工號為"+getId()+"的"+getName()+"員工,正在研發安卓應用"); } }
- 定義Network網路維護工程師 繼承 維護部員工類,重寫工作方法
package cn.itcast.demo07; /* * network工程師正在維護網路 */ public class Network extends Maintainer { public void work(){ System.out.println("員工號為"+getId()+"的"+getName()+"員工,正在維護網路"); } }
- 定義Hardware硬體維護工程師 繼承 維護部員工類,重寫工作方法
package cn.itcast.demo07; public class Hardware extends Maintainer{ public void work(){ System.out.println("員工號為"+getId()+"的 "+getName()+" 員工,正在修復印表機"); } }
- 在測試類中,建立JavaEE工程師物件,完成工作方法的呼叫
package cn.itcast.demo07; public class Test { public static void main(String[] args) { //建立JavaEE工程師員工物件 JavaEE ee = new JavaEE(); //設定該員工的編號 ee.setId("000015"); //設定該員工的姓名 ee.setName("小明"); //呼叫該員工的工作方法 ee.work(); Android aa = new Android(); aa.setId("000017"); aa.setName("大鵬"); aa.work(); Network nn = new Network(); nn.setId("000016"); nn.setName("大明"); nn.work(); Hardware hh = new Hardware(); hh.setId("000018"); hh.setName("哈哈"); hh.work(); } }
執行結果: