2 changed files with 150 additions and 0 deletions
@ -0,0 +1,101 @@ |
|||
public class Employee { |
|||
|
|||
// 静态变量:公司名称
|
|||
private static String companyName = "ABC科技有限公司"; |
|||
|
|||
// 最低工资标准
|
|||
private static final double MIN_SALARY = 2000.0; |
|||
|
|||
// 属性:工号、姓名、部门、工资
|
|||
private String id; |
|||
private String name; |
|||
private String department; |
|||
private double salary; |
|||
|
|||
// 全参构造方法(同时为 companyName 赋值)
|
|||
public Employee(String id, String name, String department, double salary) { |
|||
this.id = id; |
|||
this.name = name; |
|||
this.department = department; |
|||
// 使用 setSalary 确保工资合法
|
|||
setSalary(salary); |
|||
} |
|||
|
|||
// ==================== Getter & Setter ====================
|
|||
|
|||
public static String getCompanyName() { |
|||
return companyName; |
|||
} |
|||
|
|||
public static void setCompanyName(String companyName) { |
|||
Employee.companyName = companyName; |
|||
} |
|||
|
|||
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; |
|||
} |
|||
|
|||
/** |
|||
* 设置工资,工资必须大于等于最低工资标准(2000) |
|||
*/ |
|||
public void setSalary(double salary) { |
|||
if (salary >= MIN_SALARY) { |
|||
this.salary = salary; |
|||
} else { |
|||
System.out.println("警告:工资不能低于最低工资标准 " + MIN_SALARY |
|||
+ " 元,已自动设置为最低工资标准。"); |
|||
this.salary = MIN_SALARY; |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 按百分比涨工资 |
|||
* percent 为 5 表示增加 5% |
|||
* 增加后仍不低于最低工资 |
|||
*/ |
|||
public void raiseSalary(double percent) { |
|||
double newSalary = this.salary * (1 + percent / 100.0); |
|||
if (newSalary < MIN_SALARY) { |
|||
newSalary = MIN_SALARY; |
|||
} |
|||
this.salary = newSalary; |
|||
System.out.printf("涨薪 %.1f%%,%s 的新工资为:%.2f 元%n", percent, this.name, this.salary); |
|||
} |
|||
|
|||
/** |
|||
* 输出员工信息 |
|||
*/ |
|||
public void printInfo() { |
|||
System.out.println("=============================="); |
|||
System.out.println("公司:" + companyName); |
|||
System.out.println("工号:" + id); |
|||
System.out.println("姓名:" + name); |
|||
System.out.println("部门:" + department); |
|||
System.out.printf("工资:%.2f 元%n", salary); |
|||
System.out.println("=============================="); |
|||
} |
|||
} |
|||
@ -0,0 +1,49 @@ |
|||
public class TestEmployee { |
|||
|
|||
public static void main(String[] args) { |
|||
|
|||
System.out.println("===== 创建员工对象 =====\n"); |
|||
|
|||
// 创建第一个员工
|
|||
Employee emp1 = new Employee("E001", "张三", "研发部", 8000); |
|||
emp1.printInfo(); |
|||
|
|||
// 创建第二个员工(故意传入低于最低工资的值,演示 setSalary 校验)
|
|||
Employee emp2 = new Employee("E002", "李四", "市场部", 1500); |
|||
emp2.printInfo(); |
|||
|
|||
System.out.println("\n===== 演示属性修改(setter)=====\n"); |
|||
|
|||
// 修改 emp1 的部门和工资
|
|||
emp1.setDepartment("产品部"); |
|||
emp1.setSalary(9500); |
|||
System.out.println("修改后 emp1 信息:"); |
|||
emp1.printInfo(); |
|||
|
|||
// 用 setSalary 尝试将 emp2 工资设置为低于最低工资
|
|||
System.out.println("尝试将 emp2 工资设置为 800:"); |
|||
emp2.setSalary(800); |
|||
emp2.printInfo(); |
|||
|
|||
System.out.println("\n===== 演示涨薪(raiseSalary)=====\n"); |
|||
|
|||
// emp1 涨薪 5%
|
|||
emp1.raiseSalary(5); |
|||
// emp2 涨薪 10%
|
|||
emp2.raiseSalary(10); |
|||
|
|||
System.out.println("\n===== 涨薪后完整信息 =====\n"); |
|||
emp1.printInfo(); |
|||
emp2.printInfo(); |
|||
|
|||
System.out.println("\n===== 演示静态变量 companyName =====\n"); |
|||
|
|||
System.out.println("当前公司名称:" + Employee.getCompanyName()); |
|||
Employee.setCompanyName("XYZ集团"); |
|||
System.out.println("修改后公司名称:" + Employee.getCompanyName()); |
|||
|
|||
// 静态变量是所有对象共享的,两个对象的公司名都变了
|
|||
emp1.printInfo(); |
|||
emp2.printInfo(); |
|||
} |
|||
} |
|||
Loading…
Reference in new issue