我想问问各类员工的收入怎么求呀,需要用到哪方面的知识,谢谢啦
代码示例如下:
import java.math.BigDecimal;
import java.util.Calendar;
public class EmployeeTest {
public static void main(String[] args) {
Teacher teacher=new Teacher("张三",BigDecimal.valueOf(20000),BigDecimal.valueOf(100));
System.out.println(teacher.calAnnualInCome());
Scientist scientist=new Scientist("莉丝",BigDecimal.valueOf(50000),BigDecimal.valueOf(200000));
System.out.println(scientist.calAnnualInCome());
}
public static class Employee {
/**
* 姓名
*/
private String name;
/**
* 基本工资
*/
private BigDecimal salary;
public Employee(String name, BigDecimal salary) {
this.name = name;
this.salary = salary;
}
public BigDecimal calAnnualInCome() {
return BigDecimal.valueOf(12).multiply(salary);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public BigDecimal getSalary() {
return salary;
}
public void setSalary(BigDecimal salary) {
this.salary = salary;
}
}
public static class Teacher extends Employee {
private BigDecimal subsidy;
public Teacher(String name, BigDecimal salary, BigDecimal subsidy) {
super(name, salary);
this.subsidy = subsidy;
}
public BigDecimal getSubsidy() {
return subsidy;
}
public void setSubsidy(BigDecimal subsidy) {
this.subsidy = subsidy;
}
@Override
public BigDecimal calAnnualInCome() {
Calendar calendar = Calendar.getInstance();
int numOfDays = calendar.getActualMaximum(Calendar.DAY_OF_YEAR);
return super.calAnnualInCome().add(subsidy.multiply(BigDecimal.valueOf(numOfDays)));
}
}
public static class Scientist extends Employee {
private BigDecimal annualBonus;
public Scientist(String name, BigDecimal salary, BigDecimal annualBonus) {
super(name, salary);
this.annualBonus = annualBonus;
}
@Override
public BigDecimal calAnnualInCome() {
return super.calAnnualInCome().add(annualBonus);
}
public BigDecimal getAnnualBonus() {
return annualBonus;
}
public void setAnnualBonus(BigDecimal annualBonus) {
this.annualBonus = annualBonus;
}
}
}
运算结果:
276500
800000