《某公司的雇员分为以下若干类Employee这是所有员工总的父类属性员工.docx》由会员分享,可在线阅读,更多相关《某公司的雇员分为以下若干类Employee这是所有员工总的父类属性员工.docx(6页珍藏版)》请在三一文库上搜索。
1、Employee.ava import java.util.Calendar;import java.util.GregorianCalendar;public class Employee /* Employee: 这是所有员工总的父类,属性: 员工的姓名和生日月份。方法: getSalary(intmonth) 根据参数月份来确定工资,* 如果该月员工过生日,则公司会额外奖励100 元。*/private String name;protected int month;private int base = 6000;private int salary;public Employee()
2、public Employee(String name, int month) this.setName(name);this.setMonth(month);public String getName() return name;public void setName(String name) this.name = name;public int getMonth() return month;public void setMonth(int month) this.month = month;GregorianCalendar g = new GregorianCalendar();in
3、t flag = (int) g.get(Calendar.MONTH) + 1;public int getSalary(int month) int s = this.getMonth();if (flag = s) salary = base + 100; elsesalary = base;return salary;void says() System.out.println( 当前月份: + flag);/ SalaryEmployee : Employee 的子类,拿固定工资的员工。属性:月薪class SalaryEmployee extends Employee privat
4、e int base = 6000;private int salary;public SalaryEmployee(String name, int month) super(name, month);public int getSalary(int month) int s = this.getMonth();if (flag = s) salary = base + 100; else salary = base; return salary;void says() System.out.println( + 姓名: + this.getName() + + 生日所在月:+ this.g
5、etMonth() + + 所得薪酬: + getSalary(month);/ HourlyEmployee : Employee 的子类,按小时拿工资的员工,每月工作超出160 小时的部分按照 1.5 倍工资发放。/ 属性:每小时的工资、每月工作的小时数class HourlyEmployee extends Employee private int hours;private int basehour = 35;private int salary;public HourlyEmployee(String name, int month, int hours) super(name, m
6、onth);this.hours = hours;public int getHours() return hours;public void setHours(int hours) this.hours = hours;public int getSalary(int month) int s = this.getMonth();if (hours 160) if (flag = s) salary = basehour * hours + 100; elsesalary = basehour * hours; else if (flag = s) salary = (int) (baseh
7、our * hours * 1.5) + 100; elsesalary = (int) (basehour * hours * 1.5);return salary;void says() System.out.println( + 姓名: + this.getName() + + 生日所在月:+ this.getMonth() + + 所得薪酬: + getSalary(month);/ SalesEmployee: Employee 的子类,销售人员,工资由月销售额和提成率决定。属性:月销售额、提成率(sales=60000 bonus=0.125)class BasePlusSales
8、Employee extends Employee private int sales;private int base = 3000;private double bonus = 0.75;private int salary;class SalesEmployee extends Employee private int sales;private double bonus = 0.1;private int salary;public SalesEmployee(String name, int month, int sales) super(name, month);this.sale
9、s = sales;public int getSales() return sales;public void setSales(int sales) this.sales = sales;public int getSalary(int month) int s = this.getMonth();if (sales 60000) if (s = flag) salary = (int) (sales * bonus) + 100; elsesalary = (int) (sales * bonus); else if (s = flag) salary = (int) (sales *
10、bonus * 1.25) + 100; elsesalary = (int) (sales * bonus * 1.25);return salary;void says() System.out.println( + 姓名: + this.getName() + + 生日所在月:+ this.getMonth() + + 所得薪酬: + getSalary(month);/ BasePlusSalesEmployee: SalesEmployee的子类,有固定底薪的销售人员,工资由底薪加上销售提成部分。属性:底薪。public BasePlusSalesEmployee(String na
11、me, int month, int sales) super(name, month);this.sales = sales;public int getSales() return sales;public void setSales(int sales) this.sales = sales;public int getSalary(int month) int s = this.getMonth();if (sales 60000) if (s = flag) salary = (int) (sales * bonus) + base + 100; elsesalary = (int)
12、 (sales * bonus) + base; else if (s = flag) salary = (int) (sales * bonus * 1.25) + base + 100; elsesalary = (int) (sales * bonus * 1.25) + base;return salary;void says() System.out.println( + 姓名: + this.getName() + + 生日所在月:+ this.getMonth() + + 所得薪酬: + getSalary(month);Test.java/测试类 public class Te
13、st public static void main(String args)Employee e=new Employee( ,0);SalaryEmployee se = new SalaryEmployee(基本工:张三,8);HourlyEmployee he = new HourlyEmployee( 小时工:李四,11, 190);SalesEmployee sa = new SalesEmployee (销售额工:王二,3,79999);BasePlusSalesEmployee bpse = new BasePlusSalesEmployee(基本销售额工:于五,7,5000);e.says();se.says();he.says();sa.says();bpse.says();