2 changed files with 111 additions and 0 deletions
Binary file not shown.
@ -0,0 +1,111 @@ |
|||||
|
/** |
||||
|
* 银行账户类,封装账户信息与操作行为 |
||||
|
*/ |
||||
|
public class BankAccount { |
||||
|
// 1. 定义私有属性,符合封装特性
|
||||
|
private final String accountNumber; // 账户号:创建后不可修改,用final修饰
|
||||
|
private String ownerName; // 户主姓名:可修改
|
||||
|
private double balance; // 余额:仅通过存款/取款修改
|
||||
|
|
||||
|
/** |
||||
|
* 2. 构造方法:创建账户时必须传入账户号和户主姓名,初始余额为0 |
||||
|
* @param accountNumber 账户号(不可修改) |
||||
|
* @param ownerName 户主姓名 |
||||
|
*/ |
||||
|
public BankAccount(String accountNumber, String ownerName) { |
||||
|
this.accountNumber = accountNumber; |
||||
|
this.ownerName = ownerName; |
||||
|
this.balance = 0.0; // 初始余额为0
|
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 3. 存款操作 |
||||
|
* @param amount 存款金额 |
||||
|
*/ |
||||
|
public void deposit(double amount) { |
||||
|
// 校验:金额必须大于0
|
||||
|
if (amount > 0) { |
||||
|
balance += amount; |
||||
|
System.out.println("存款成功!当前余额:" + String.format("%.2f", balance)); |
||||
|
} else { |
||||
|
System.out.println("存款失败:金额必须大于0!"); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 4. 取款操作 |
||||
|
* @param amount 取款金额 |
||||
|
*/ |
||||
|
public void withdraw(double amount) { |
||||
|
// 校验:金额大于0 且 不超过当前余额
|
||||
|
if (amount > 0) { |
||||
|
if (amount <= balance) { |
||||
|
balance -= amount; |
||||
|
System.out.println("取款成功!当前余额:" + String.format("%.2f", balance)); |
||||
|
} else { |
||||
|
System.out.println("取款失败:取款金额超过当前余额!"); |
||||
|
} |
||||
|
} else { |
||||
|
System.out.println("取款失败:金额必须大于0!"); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 5. 查询余额方法:对外提供查询,不允许直接修改 |
||||
|
* @return 当前账户余额 |
||||
|
*/ |
||||
|
public double getBalance() { |
||||
|
return balance; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 6. 获取账户号(仅提供getter,无setter,保证不可修改) |
||||
|
* @return 账户号 |
||||
|
*/ |
||||
|
public String getAccountNumber() { |
||||
|
return accountNumber; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 7. 获取户主姓名 |
||||
|
* @return 户主姓名 |
||||
|
*/ |
||||
|
public String getOwnerName() { |
||||
|
return ownerName; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 8. 修改户主姓名(对外提供修改入口) |
||||
|
* @param ownerName 新的户主姓名 |
||||
|
*/ |
||||
|
public void setOwnerName(String ownerName) { |
||||
|
this.ownerName = ownerName; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 测试类:验证账户功能 |
||||
|
*/ |
||||
|
public static void main(String[] args) { |
||||
|
// 1. 创建账户(账户号:622202123456789,户主:张三)
|
||||
|
BankAccount account = new BankAccount("622202123456789", "张三"); |
||||
|
|
||||
|
// 2. 测试存款
|
||||
|
account.deposit(1000.0); // 存款1000
|
||||
|
account.deposit(-500.0); // 存款负数(失败)
|
||||
|
|
||||
|
// 3. 测试取款
|
||||
|
account.withdraw(300.0); // 取款300
|
||||
|
account.withdraw(800.0); // 取款800(超过余额,失败)
|
||||
|
account.withdraw(-100.0); // 取款负数(失败)
|
||||
|
|
||||
|
// 4. 查询余额
|
||||
|
System.out.println("最终查询余额:" + String.format("%.2f", account.getBalance())); |
||||
|
|
||||
|
// 5. 修改户主姓名
|
||||
|
account.setOwnerName("张小三"); |
||||
|
System.out.println("修改后户主姓名:" + account.getOwnerName()); |
||||
|
|
||||
|
// 6. 尝试获取账户号(验证不可修改)
|
||||
|
System.out.println("账户号:" + account.getAccountNumber()); |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue