2 changed files with 129 additions and 0 deletions
@ -0,0 +1,95 @@ |
|||||
|
public class Employee { |
||||
|
// 1. 定义私有属性
|
||||
|
private String id; |
||||
|
private String name; |
||||
|
private String department; |
||||
|
private double salary; |
||||
|
|
||||
|
// 最低工资标准,设为常量
|
||||
|
private static final double MIN_SALARY = 2000.0; |
||||
|
|
||||
|
/** |
||||
|
* 2. 提供必要的构造方法 |
||||
|
* 这里提供一个全参构造方法 |
||||
|
*/ |
||||
|
public Employee(String id, String name, String department, double salary) { |
||||
|
this.id = id; |
||||
|
this.name = name; |
||||
|
this.department = department; |
||||
|
// 使用 setSalary 方法来确保初始工资符合标准
|
||||
|
this.setSalary(salary); |
||||
|
} |
||||
|
|
||||
|
// 3. 提供合理的 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; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 在 setSalary 中检查工资必须大于等于最低工资标准 |
||||
|
*/ |
||||
|
public void setSalary(double salary) { |
||||
|
if (salary >= MIN_SALARY) { |
||||
|
this.salary = salary; |
||||
|
} else { |
||||
|
System.out.println("工资 " + salary + " 低于最低标准 " + MIN_SALARY + ",已自动设置为最低标准。"); |
||||
|
this.salary = MIN_SALARY; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 4. 添加一个 raiseSalary 方法,按照百分比增加工资 |
||||
|
* percent 为 5 表示增加 5% |
||||
|
*/ |
||||
|
public void raiseSalary(double percent) { |
||||
|
if (percent < 0) { |
||||
|
System.out.println("增长率不能为负数,增长无效。"); |
||||
|
return; |
||||
|
} |
||||
|
double raiseAmount = this.salary * (percent / 100.0); |
||||
|
this.salary += raiseAmount; |
||||
|
// 确保增加后仍不低于最低工资
|
||||
|
if (this.salary < MIN_SALARY) { |
||||
|
this.salary = MIN_SALARY; |
||||
|
} |
||||
|
System.out.println("工资已按 " + percent + "% 的比例增长。"); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 为了方便打印对象信息,重写 toString 方法 |
||||
|
*/ |
||||
|
@Override |
||||
|
public String toString() { |
||||
|
return "Employee{" + |
||||
|
"id='" + id + '\'' + |
||||
|
", name='" + name + '\'' + |
||||
|
", department='" + department + '\'' + |
||||
|
", salary=" + salary + |
||||
|
'}'; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,34 @@ |
|||||
|
public class EmployeeTest { |
||||
|
public static void main(String[] args) { |
||||
|
// 5. 编写测试类,创建两个 Employee 对象
|
||||
|
|
||||
|
// 创建第一个员工对象,工资符合标准
|
||||
|
Employee emp1 = new Employee("E001", "张三", "研发部", 5000.0); |
||||
|
System.out.println("创建员工 emp1: " + emp1); |
||||
|
|
||||
|
// 创建第二个员工对象,工资低于最低标准
|
||||
|
Employee emp2 = new Employee("E002", "李四", "市场部", 1500.0); |
||||
|
System.out.println("创建员工 emp2: " + emp2); |
||||
|
|
||||
|
System.out.println("\n--- 开始演示属性访问和修改 ---"); |
||||
|
|
||||
|
// 演示获取属性
|
||||
|
System.out.println("emp1 的姓名是: " + emp1.getName()); |
||||
|
System.out.println("emp2 的当前工资是: " + emp2.getSalary()); |
||||
|
|
||||
|
// 演示 raiseSalary 方法
|
||||
|
System.out.println("\n对 emp1 进行调薪..."); |
||||
|
emp1.raiseSalary(10.0); |
||||
|
System.out.println("emp1 调薪后的信息: " + emp1); |
||||
|
|
||||
|
// 演示设置属性
|
||||
|
System.out.println("\n修改 emp2 的部门..."); |
||||
|
emp2.setDepartment("销售部"); |
||||
|
System.out.println("emp2 修改部门后的信息: " + emp2); |
||||
|
|
||||
|
// 演示 setSalary 的检查功能
|
||||
|
System.out.println("\n尝试将 emp1 的工资设置为 1800..."); |
||||
|
emp1.setSalary(1800); |
||||
|
System.out.println("emp1 修改工资后的信息: " + emp1); |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue