diff --git a/w3/BankAccount.java b/w3/BankAccount.java new file mode 100644 index 0000000..c37afb7 --- /dev/null +++ b/w3/BankAccount.java @@ -0,0 +1,76 @@ +package java01; + +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; + } + + // 3. Getter方法(对外提供查询) + // 账号只有getter,没有setter,保证不可修改 + public String getAccountNumber() { + return accountNumber; + } + + public String getOwnerName() { + return ownerName; + } + + public double getBalance() { + return balance; + } + + // 4. Setter方法:只有户主姓名可以修改 + public void setOwnerName(String ownerName) { + this.ownerName = ownerName; + } + + // 5. 存款方法 deposit + public void deposit(double amount) { + if (amount > 0) { + balance += amount; + System.out.println("存款成功!当前余额:" + balance); + } else { + System.out.println("存款失败!存款金额必须大于0。"); + } + } + + // 6. 取款方法 withdraw + public void withdraw(double amount) { + if (amount > 0 && amount <= balance) { + balance -= amount; + System.out.println("取款成功!当前余额:" + balance); + } else if (amount <= 0) { + System.out.println("取款失败!取款金额必须大于0。"); + } else { + System.out.println("取款失败!余额不足。"); + } + } + + // 测试主方法(可选,用来验证功能) + public static void main(String[] args) { + // 创建一个账户 + BankAccount account = new BankAccount("622202123456789", "张三"); + + // 测试查询 + System.out.println("账号:" + account.getAccountNumber()); + System.out.println("户主:" + account.getOwnerName()); + System.out.println("初始余额:" + account.getBalance()); + + // 测试存款 + account.deposit(500); + account.deposit(-100); // 测试错误存款 + + // 测试取款 + account.withdraw(200); + account.withdraw(400); // 测试余额不足 + account.withdraw(-50); // 测试错误取款 + } +} \ No newline at end of file diff --git a/w3/BankAccountTest.java b/w3/BankAccountTest.java new file mode 100644 index 0000000..c9cf49e --- /dev/null +++ b/w3/BankAccountTest.java @@ -0,0 +1,34 @@ +package java01; + +public class BankAccountTest { + public static void main(String[] args) { + System.out.println("========== 1. 测试账户创建 =========="); + BankAccount account = new BankAccount("622202123456789", "张三"); + System.out.println("账号:" + account.getAccountNumber()); + System.out.println("户主:" + account.getOwnerName()); + System.out.println("初始余额:" + account.getBalance()); + System.out.println(); + + System.out.println("========== 2. 测试修改户主姓名 =========="); + account.setOwnerName("张三丰"); + System.out.println("修改后户主:" + account.getOwnerName()); + System.out.println(); + + System.out.println("========== 3. 测试存款操作 =========="); + account.deposit(1000); + account.deposit(0); + account.deposit(-500); + System.out.println(); + + System.out.println("========== 4. 测试取款操作 =========="); + account.withdraw(300); + account.withdraw(800); + account.withdraw(0); + account.withdraw(-200); + System.out.println(); + + System.out.println("========== 5. 最终状态验证 =========="); + System.out.println("最终户主:" + account.getOwnerName()); + System.out.println("最终余额:" + account.getBalance()); + } +} \ No newline at end of file