大家好!
我是小黃,很高興又跟大家見面啦 !
今天更新的是:
- JAVA程式設計課后習題-我是歌手
- 往期檢索:程式設計學習筆記——目錄
創建時間:2020年10月23日
軟體版本: eclipse 2020-06 (4.16.0)
目錄 :
- 1. 題目:
- 2. 代碼:
1. 題目:
1、 本實驗要求:以雇員的日常作業為背景,體驗“繼承”與“屬性復用技術”的運用場景,
-
1-1. 業務說明:
1-1.1. 本實驗以公司雇員的日常作業模式為業務背景,
1-1.2. 公司每個雇員每天都需要進行日常的常規作業,
1-1.3. 人事人員既是公司雇員,同時也具有特定的作業職責,
1-1.4. 人事除了日常的常規作業外,還具有為員工發放薪水的作業職責,
1-2. 創建工程并配置環境:
1-2.1. 限制1. 創建實驗工程,命名為:SE_JAVA_EXP_E032;
1-2.2. 限制2. 創建包,命名為:cn.campsg.java.experiment;
1-2.3. 限制3. 創建包,命名為:cn.campsg.java.experiment.entity,
1-3. 創建雇員物體類及其相關屬性:
1-3.1. 限制1. 在cn.campsg.java.experiment.entity 包中創建雇員類:Employe,
1-3.2. 為Employe類創建如下屬性:
1)雇員姓名:字符型別;
2)雇員職級:整數型別;
3)雇員薪水:整數型別,
1-3.3. 為Employe類的屬性創建getter/setter方法,
1-3.4. 為Employe類創建0參建構式,
1-3.5. 為Employe類創建3參建構式,
1)在3參構造器中,對雇員類的三個屬性進行初始化,
1-3.6. 為Employe類創建日常的常規作業方法:
1)限制1. 方法名為:work,
2)限制2. work方法可設定為0參,無回傳公共函式,
3)work方法的作用是,模擬雇員的常規作業,
4)work方法需在控制臺輸出資訊:雇員名稱 +“ 做好了本職作業! ”
1-4. 創建人事物體類及其相關屬性:
1-4.1. 限制1.在cn.campsg.java.experiment.entity包中創建人事類:Hrstaff;
1)Hrstaff類需繼承Employe類,以此獲取雇員類的所有屬性和特征,
1-4.2. 為Hrstaff創建0參建構式,
1-4.3. 為Hrstaff創建1參建構式:
1)引數為:人事姓名(字串型別),
2)Hrstaff利用繼承技術特有的屬性共用特性,實作初始化,
3)Hrstaff呼叫父類Employe的3參建構式,引數如下:
Employe類的雇員姓名屬性 = Hrstaff類的雇員姓名屬性,
Employe類的雇員職級屬性 = 5(人事雇員等級默認為5),
Employe類的雇員薪水屬性 = 5000(人事雇員薪水默認為5000),
1-5. 實作人事為雇員發放薪水的操作:
1-5.1. 為Hrstaff類創建發放薪水方法:
1)限制1. 方法名為:paySalary;
2)限制2. paySalary方法帶有1個Employe型別引數,用于表述為哪位員工發放工資,
3)限制3. paySalary方法可設定為無回傳公共函式,
4)paySalary根據Employe的雇員等級實作薪水發放,發放規則如下:
職級在[1-5]之間,雇員薪水 = 雇員薪水 + 500;
職級在[6-9]之間,雇員薪水 = 雇員薪水 + 800;
職級在[10-15]之間,雇員薪水 = 雇員薪水 + 1000;
超出職級范圍,提示:“不存在對應的職級,無法發放額外浮動薪水”
1-6. 顯示雇員作業內容和薪水:
1-6.1. 限制1. 在cn.campsg.java.experiment包中創建主類:MainClass;
1-6.2. 為MainClass創建入口主方法:main;
1-6.3. 在main方法中,創建3個不同雇員物件和1個人事物件,
1-6.4. 在main方法中,顯示所有雇員和人事的常規作業情況(呼叫work),
1-6.5. 在main方法中,實作人事對所有雇員(包括自己)發放薪水的操作,
1-6.6. 工資發放后,在main方法中輸出雇員的發薪資訊(包括人事):
1)輸出資訊格式為:員工姓名 +“ 的薪水: ”+ 員工類的雇員薪水 -
2、實作思路
2-1. 創建工程并配置環境,
2-2. 創建雇員物體類及其相關屬性:
2-2.1. 在cn.campsg.java.experiment.entity 包中創建雇員類:Employe;
2-2.2. 為Employe定義如下私有屬性成員變數
1)雇員姓名:String name;
2)雇員職級:int level;
3)雇員薪水:int salary,
2-2.3. 為Employe類的屬性創建對應的getter/setter方法,
2-2.4. 為Employ類創建默認構造器,
2-2.5. 為Employe類創建3參構造器,創建規則如下:
1)構造器的引數分別對應Employe的三個屬性變數;
2)在3參構造器內完成對Employe類三個屬性的賦值,
2-2.6. 為Employe創建常規作業方法:work,其形式如下:

1)在方法體內向控制臺輸出資訊,格式:雇員姓名 +“ 做好了本職作業! ”;
2-3. 創建人事物體類及相關屬性:
2-3.1. 在cn.campsg.java.experiment.entity包中創建人事類:Hrstaff,
1)人事類Hrstaff繼承自雇員類Employe,
2-3.2. 為人事類Hrstaff創建默認構造器,
2-3.3. 為人事類Hrstaff創建1參構造器,引數為人事的姓名:
1)在1參構造器內呼叫Employe的3參構造器,實作人事的屬性初始化,
2)Hrstaff類屬性的初始化可按如下規則設定:
Employe的name屬性 = Hrstaff的name屬性;
Employe的level屬性 = 5;
Employe的salary屬性 = 5000,
2-4. 實作人事為雇員發放薪水的操作
2-4.1. 為Hrstaff類創建特有的發薪方法paySalary,其形式如下:

2-4.2. 實作薪水發放的業務邏輯:
1)在方法內,首先獲取通過引數傳入的雇員物件職級:
int level = em.getLevel();
2)按實驗要求,根據雇員的職級在原有薪水基礎上增加額外的補貼金額,
3)超出職級時提示資訊為:“不存在對應的職級,無法發放額外浮動薪水”,
2-5. 顯示雇員作業內容和薪水:
2-5.1. 在包cn.campsg.java.experiment中創建業務主類:MainClass;
2-5.2. 在MainClass中定義主函式main,
2-5.3. 在main方法中創建3個不同的雇員物件和1個人事物件,
2-5.4. 呼叫4個物件的work函式,輸出所有雇員(包括人事)的作業內容,
2-5.5. 模擬實作人事為雇員(包括自己)發放薪水的操作:
1)呼叫Hrstaff物件的paySalary方法,并分別傳入三個雇員物件,
2)呼叫Hrstaff物件的paySalary方法,并傳入人事物件自己,
3)依次向控制臺輸出所有雇員的發薪資訊,資訊格式如下:
雇員物件.getName() +“的薪水:”+ 雇員物件.getSalary(), -
3、驗證與測驗
3-1. 在工程中定位主類MainClass,
3-2. 右鍵點擊MainClass類,依次選擇:Run As->Java Application,
3-3. 運行程式,查看輸出結果是否符合預期, -
4、完成效果預覽:

2. 代碼:
- eclipse工程目錄 :

- 包名 :cn.campsg.java.experiment
- 類名:MainClass
package cn.campsg.java.experiment;
import cn.campsg.java.experiment.entity.Employe;
import cn.campsg.java.experiment.entity.Hrstaff;
public class MainClass {
public static void main(String[] args) {
Employe employe1=new Employe("南帝",1,5000);
Employe employe2=new Employe("北丐",7,6000);
Employe employe3=new Employe("中神",11,7000);
Hrstaff hr=new Hrstaff("HR");
employe1.work();
employe2.work();
employe3.work();
hr.work();
System.out.println(hr.getName()+"開始發放工資:");
hr.paySalary(employe1);
hr.paySalary(employe2);
hr.paySalary(employe3);
hr.paySalary(hr);
}
}
- 包名 :cn.campsg.java.experiment.entity
- 類名:Employe
package cn.campsg.java.experiment.entity;
public class Employe {
private String name;
private int level;
private int salary;
public Employe() {
super();
}
public Employe(String name, int level, int salary) {
super();
this.name = name;
this.level = level;
this.salary = salary;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
public void work() {
System.out.println(name + " 做好了本職作業! ");
}
}
- 包名 :cn.campsg.java.experiment.entity
- 類名:Hrstaff
package cn.campsg.java.experiment.entity;
public class Hrstaff extends Employe {
public Hrstaff() {
super();
}
public Hrstaff(String name) {
super(name, 5, 5000);
}
public Hrstaff(String name, int level, int salary) {
super(name, level, salary);
}
public void paySalary(Employe em) {
if (em.getLevel() > 0 && em.getLevel() < 6)
em.setSalary(em.getSalary() + 500);
else if (em.getLevel() < 10)
em.setSalary(em.getSalary() + 800);
else if (em.getLevel() < 16)
em.setSalary(em.getSalary() + 1000);
else
System.out.println("不存在對應的職級,無法發放額外浮動薪水");
System.out.println("員工" + em.getName() + "的薪水:" + em.getSalary());
}
}
各位路過的朋友,如果覺得可以學到些什么的話,點個贊 再走吧,歡迎各位路過的大佬評論,指正錯誤,也歡迎有問題的小伙伴評論留言,私信,
每個小伙伴的關注都是本人更新博客的動力!!!
請微信搜索【 在下小黃 】文章更新將在第一時間閱讀 !

把握現在 ,展望未來 ,加油 !
由于水平有限 ,寫的難免會有些不足之處 ,懇請各位大佬不吝賜教 !
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/190456.html
標籤:其他
上一篇:IDEA自定義模板注釋(解決了引數與回傳值為空的問題)
下一篇:JVM初始
