Browse Source

w3-杜雨萌-202506050328

main
unknown 3 weeks ago
parent
commit
5a29b7f665
  1. 84
      w3/BankAccount.java
  2. 75
      w3/Employee.java

84
w3/BankAccount.java

@ -0,0 +1,84 @@
public class BankAccount {
// 私有属性:账户号(final修饰,不可修改)
private final String accountNumber;
// 私有属性:户主姓名(可修改)
private String ownerName;
// 私有属性:余额(只能通过存款和取款操作改变)
private double balance;
/**
* 构造方法创建账户时必须提供账户号和户主姓名初始余额为0
* @param accountNumber 账户号创建后不可修改
* @param ownerName 户主姓名
*/
public BankAccount(String accountNumber, String ownerName) {
this.accountNumber = accountNumber;
this.ownerName = ownerName;
this.balance = 0.0;
}
/// 获取账户号(只读,无setter方法)
/// @return 账户号
public String getAccountNumber() {
return accountNumber;
}
/**
* 获取户主姓名
* @return 户主姓名
*/
public String getOwnerName() {
return ownerName;
}
/**
* 修改户主姓名
* @param ownerName 新的户主姓名
*/
public void setOwnerName(String ownerName) {
this.ownerName = ownerName;
System.out.println("户主姓名已修改为:" + ownerName);
}
/**
* 查询余额只读无setter方法
* @return 当前余额
*/
public double getBalance() {
return balance;
}
/**
* 存款操作
* @param amount 存款金额必须大于0
*/
public void deposit(double amount) {
if (amount > 0) {
balance += amount;
System.out.println("存款 " + amount + " 元成功,当前余额:" + balance + " 元");
} else {
System.out.println("存款金额必须大于0!");
}
}
/**
* 取款操作
* @param amount 取款金额必须大于0且不超过当前余额
*/
public void withdraw(double amount) {
if (amount <= 0) {
System.out.println("取款金额必须大于0!");
} else if (amount > balance) {
System.out.println("余额不足!当前余额为 " + balance + " 元,无法取出 " + amount + " 元。");
} else {
balance -= amount;
System.out.println("取款 " + amount + " 元成功,当前余额:" + balance + " 元");
}
}
/**
* 查询余额并打印信息
*/
public void queryBalance() {
System.out.println("账户 " + accountNumber + " 当前余额为:" + balance + " 元");
}
}

75
w3/Employee.java

@ -0,0 +1,75 @@
public class Employee {
// 私有属性:封装
private String id;
private String name;
private String department;
private double salary;
// 最低工资标准常量
private static final double MIN_SALARY = 2000.0;
// 全参构造方法
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 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) {
System.out.println("警告:工资不能低于最低工资 " + MIN_SALARY + " 元,已自动设置为最低工资。");
this.salary = MIN_SALARY;
} else {
this.salary = salary;
}
}
// 涨薪方法:percent 为 5 表示增加 5%
public void raiseSalary(double percent) {
if (percent <= 0) {
System.out.println("涨薪百分比必须大于 0");
return;
}
double increase = this.salary * (percent / 100);
double newSalary = this.salary + increase;
setSalary(newSalary); // 复用 setSalary 的校验逻辑
}
// 方便展示员工信息的方法
public void displayInfo() {
System.out.println("工号:" + id + ",姓名:" + name + ",部门:" + department + ",工资:" + salary);
}
}
Loading…
Cancel
Save