You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

78 lines
2.1 KiB

public class Employee {
private String id; // 工号
private String name; // 姓名
private String department; // 部门
private double salary; // 工资
public static String companyName; // 静态变量
private static final double MIN_SALARY = 2000.0; // 最低工资标准常量
// 全参构造方法
public Employee(String id, String name, String department, double salary, String companyName) {
this.id = id;
this.name = name;
this.department = department;
this.setSalary(salary);
Employee.companyName = companyName; // 为静态变量赋值(所有实例共享)
}
// getter和setter
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDepartment() {
return department;
}
public void setDepartment(String department) {
this.department = department;
}
public double getSalary() {
return salary;
}
// 最低工资标准校验
public void setSalary(double salary) {
if (salary >= MIN_SALARY) {
this.salary = salary;
} else {
System.out.println("工资设置失败!已自动设置为最低工资" + MIN_SALARY);
this.salary = MIN_SALARY;
}
}
// 涨薪方法
public void raiseSalary(double percent) {
if (percent < 0) {
System.out.println("涨薪百分比不能为负数,操作取消");
return;
}
double newSalary = this.salary * (1 + percent / 100);
this.salary = Math.max(newSalary, MIN_SALARY);
System.out.println(name + " 涨薪后工资:" + this.salary);
}
// 打印员工信息
@Override
public String toString() {
return "公司:" + companyName +
" | 工号:" + id +
" | 姓名:" + name +
" | 部门:" + department +
" | 工资:" + salary;
}
}