Browse Source

上传文件至 'w3'

main
Chengwuyi 3 weeks ago
parent
commit
ab828c13ab
  1. 101
      w3/Employee.java
  2. 49
      w3/TestEmployee.java

101
w3/Employee.java

@ -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("==============================");
}
}

49
w3/TestEmployee.java

@ -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…
Cancel
Save