// 银行账户类:封装账户属性和操作 public class BankAccount { // 1. 定义私有属性(仅本类可访问) private String accountNumber; // 账户号 private String ownerName; // 户主姓名 private double balance; // 余额 // 2. 构造方法:创建账户时必须传入账户号和户主姓名,初始余额为0 public BankAccount(String accountNumber, String ownerName) { this.accountNumber = accountNumber; this.ownerName = ownerName; this.balance = 0.0; // 初始余额固定为0 } // 3. 封装的方法:对外提供安全的访问/操作入口 // 获取账户号(账户号不可修改,无setter方法) public String getAccountNumber() { return accountNumber; } // 获取户主姓名 public String getOwnerName() { return ownerName; } // 修改户主姓名 public void setOwnerName(String ownerName) { this.ownerName = ownerName; } // 查询余额(仅查询,不允许直接修改) public double getBalance() { return balance; } // 存款操作(仅允许存入正数) public void deposit(double amount) { if (amount > 0) { balance += amount; System.out.println("✅ 存款成功!当前余额:" + balance + " 元"); } else { System.out.println("❌ 存款失败:金额必须大于0!"); } } // 取款操作(校验金额合法性和余额充足性) public void withdraw(double amount) { if (amount > 0) { if (amount <= balance) { balance -= amount; System.out.println("✅ 取款成功!当前余额:" + balance + " 元"); } else { System.out.println("❌ 取款失败:余额不足!当前余额:" + balance + " 元,取款金额:" + amount + " 元"); } } else { System.out.println("❌ 取款失败:金额必须大于0!"); } } // 测试主方法:直接在本类中运行,无需额外创建测试类 public static void main(String[] args) { // 1. 创建一个银行账户(账户号:6228481234567890,户主:李四) BankAccount myAccount = new BankAccount("6228481234567890", "李四"); // 2. 打印账户初始信息 System.out.println("===== 账户初始信息 ====="); System.out.println("账户号:" + myAccount.getAccountNumber()); System.out.println("户主姓名:" + myAccount.getOwnerName()); System.out.println("初始余额:" + myAccount.getBalance() + " 元"); // 3. 测试存款操作 System.out.println("\n===== 测试存款 ====="); myAccount.deposit(2000); // 存入2000元(合法) myAccount.deposit(-500); // 存入负数(非法) // 4. 测试取款操作 System.out.println("\n===== 测试取款 ====="); myAccount.withdraw(800); // 取出800元(合法) myAccount.withdraw(1500); // 取出1500元(余额不足) myAccount.withdraw(-200); // 取出负数(非法) // 5. 修改户主姓名 System.out.println("\n===== 测试修改户主姓名 ====="); myAccount.setOwnerName("李四五"); System.out.println("修改后的户主姓名:" + myAccount.getOwnerName()); // 6. 打印最终账户信息 System.out.println("\n===== 账户最终信息 ====="); System.out.println("账户号:" + myAccount.getAccountNumber()); System.out.println("户主姓名:" + myAccount.getOwnerName()); System.out.println("最终余额:" + myAccount.getBalance() + " 元"); } }