修改 账 号生成、余额变 动方式 ·修改构造方法, 取消帐号参数, 不允许直接修改账号; ·增加类变量, 实现生成新对象时让账号自增,给出代码示例
时间: 2024-10-18 07:19:19 浏览: 10
在设计账户类时,为了防止直接修改账号并保持安全性,我们可以采用以下策略:
1. **取消显式账号参数**:构造函数只接受必要的初始化参数,如初始余额等,而账号作为私有属性,通过内部逻辑来管理和生成。
```java
public class Account {
private String accountId; // 私有化账号,不允许外部直接访问
private double balance;
public Account(String initialBalance) {
this.balance = initialBalance;
this.accountId = generateNewAccountId(); // 自动生成账号
}
// 生成新的账号ID方法
private String generateNewAccountId() {
// 这里可以实现简单的计数或者复杂点的序列生成,比如UUID
return "Account_" + (accountCount++);
}
// 其他公共操作,例如存款、取款
public void deposit(double amount) {
balance += amount;
}
public void withdraw(double amount) {
if (amount <= balance) {
balance -= amount;
} else {
System.out.println("Insufficient funds.");
}
}
// 获取信息,提供安全访问
public String getAccountId() {
return accountId;
}
public double getBalance() {
return balance;
}
// 防止直接修改账号
private void setAccountId(String accountId) {
throw new UnsupportedOperationException("Direct modification of account ID is not allowed");
}
}
```
阅读全文