雇员类:
package com.it.team.domain;
public class Employee {
private int id;
private String name;
private int age;
private double salary;
public Employee(int id, String name, int age, double salary) {
this.id = id;
this.name = name;
this.age = age;
this.salary = salary;
}
public Employee() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public String getDetails(){
return id+"\t"+name+"\t"+age+"\t"+salary;
}
@Override
public String toString() {
return getDetails();
}
}
程序猿类
`package com.it.team.domain;
import com.it.team.service.Status;
public class Programmer extends Employee {
private int memberId;//成员加入开发团队后的TID
private Status status =Status.FREE;//表示成员状态的对象,里面有表示成员状态的静态常量
private Equiment equiment;//表示设备的类,表示员工可以领到的设备
public Programmer(int id, String name, int age, double salary, Equiment equiment) {
super(id, name, age, salary);
this.equiment = equiment;
}
public Programmer() {
}
public int getMemberId() {
return memberId;
}
public void setMemberId(int memberId) {
this.memberId = memberId;
}
public Status getStatus() {
return status;
}
public void setStatus(Status status) {
this.status = status;
}
public Equiment getEquiment() {
return equiment;
}
public void setEquiment(Equiment equiment) {
this.equiment = equiment;
}
@Override
public String toString() {
return getDetails()+"\t程序员\t"+status+"\t\t\t\t"+equiment.getDescription();
}
public String getbase(){
return memberId+"/"+getId()+"\t"+getName()+"\t"+getAge()+"\t"+getSalary();
}
public String toStringForTeam(){
return getbase()+"\t程序员";
}
}
设计师类
package com.it.team.domain;
import com.it.team.service.Status;
public class Designer extends Programmer{
private double bonus;//奖金
public Designer(int id, String name, int age, double salary, Equiment equiment, double bonus) {
super(id, name, age, salary, equiment);
this.bonus = bonus;
}
public Designer(double bonus) {
this.bonus = bonus;
}
public double getBonus() {
return bonus;
}
public void setBonus(double bonus) {
this.bonus = bonus;
}
@Override
public String toString() {
return getDetails()+"\t设计师\t"+ getStatus()+"\t"+bonus+"\t\t"+getEquiment().getDescription();
}
public String toStringForTeam(){
return getbase()+"\t设计师\t"+getBonus();
}
}
架构师类:
package com.it.team.domain;
public class Architect extends Designer{
private int stock;//股票数量
public Architect(int id, String name, int age, double salary, Equiment equiment, double bonus, int stock) {
super(id, name, age, salary, equiment, bonus);
this.stock = stock;
}
public Architect(double bonus, int stock) {
super(bonus);
this.stock = stock;
}
public int getStock() {
return stock;
}
public void setStock(int stock) {
this.stock = stock;
}
@Override
public String toString() {
return getDetails()+"\t"+"架构师"+"\t"+getStatus()+"\t"+ getBonus()+"\t"+stock+"\t"+getEquiment().getDescription();
}
public String toStringForTeam(){
return getbase()+"\t架构师\t"+getBonus()+"\t"+stock;
}
}
设备接口:
package com.it.team.domain;
public interface Equiment {
public String getDescription();
}
设备实现类PC类
package com.it.team.domain;
public class PC implements Equiment {
private String model;//机器的型号
private String display;//显示器名称
@Override
//作为mencu 显示的员工设备信息
public String getDescription() {
return this.model + "(" + this.display + ")";
}
public PC() {
}
public PC(String model, String display) {
this.model = model;
this.display = display;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public String getDisplay() {
return display;
}
public void setDisplay(String display) {
this.display = display;
}
}
设备实现类 :NoteBook类
package com.it.team.domain;
public class NoteBook implements Equiment {
private String model;//机器的型号
private double price;//价格
@Override
public String getDescription() {
return this.model + "(" + this.price + ")";
}
public NoteBook(String model, double price) {
this.model = model;
this.price = price;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
设备实现类:Printer类:
package com.it.team.domain;
public class Printer implements Equiment {
private String name;//机器名称
private String type;//机器类型
@Override
public String getDescription() {
return this.name + "(" + this.type + ")";
}
public Printer(String name, String type) {
this.name = name;
this.type = type;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}