用Java写一个程序模拟个人银行账号类。考虑个人银行的特点,建立类(注意属性和方法的访问权限修饰符),类的结构
时间: 2024-10-18 19:20:58 浏览: 19
当然,我们可以创建一个简单的`PersonalBankAccount`类来模拟个人银行账户的功能。这个类将包含私有变量来存储账户的信息,如账户ID、用户名、密码和余额,并提供公有方法进行操作。以下是基本的类结构:
```java
public class PersonalBankAccount {
// 私有属性
private String accountId; // 账户ID
private String userName; // 用户名
private String password; // 密码
private double balance; // 当前余额
// 构造函数,用于初始化账户
private PersonalBankAccount(String accountId, String userName, String password) {
this.accountId = accountId;
this.userName = userName;
this.password = password;
this.balance = 0.0; // 初始余额为0
}
// 公共方法 - 开户(默认余额为0)
public void openAccount(String password) {
if (this.password.equals(password)) {
this.balance = 0.0;
System.out.println("账户 " + accountId + " 已经成功开立,初始余额为0.");
} else {
System.out.println("错误:密码输入错误。");
}
}
// 公共方法 - 存款
public void deposit(double amount) {
if (amount > 0) { // 非负金额
this.balance += amount;
System.out.println("已成功向账户 " + accountId + " 存入 " + amount + " 元,当前余额为 " + this.balance + " 元。");
} else {
System.out.println("错误:无法存款负数或零。");
}
}
// 公共方法 - 取款
public void withdraw(double amount) {
if (amount <= balance) { // 取款金额不超过余额
this.balance -= amount;
System.out.println("已成功从账户 " + accountId + " 取出 " + amount + " 元,当前余额为 " + this.balance + " 元。");
} else {
System.out.println("错误:取款金额超过余额。");
}
}
// 公共方法 - 修改密码
public boolean changePassword(String oldPassword, String newPassword) {
if (this.password.equals(oldPassword)) {
this.password = newPassword;
System.out.println("密码已成功修改为:" + newPassword);
return true;
} else {
System.out.println("错误:旧密码输入错误。");
return false;
}
}
// 公共方法 - 显示账户信息
public void showAccountInfo() {
System.out.println("账户信息:");
System.out.println("账户ID: " + accountId);
System.out.println("用户名: " + userName);
System.out.println("密码: [隐藏]");
System.out.println("当前余额: " + balance);
}
// 仅用于测试的获取余额方法(通常不应公开)
double getBalanceForTesting() {
return this.balance;
}
}
```
这个类提供了开立账户、存款、取款、修改密码和查看账户信息的功能。每个操作都有相应的验证,比如检查取款金额是否合理、密码输入是否正确等。对于密码,我们将其设置为不可见,以保护用户隐私。此外,`getBalanceForTesting`方法是为了在测试中方便地获取余额,但在实际应用中不应该直接暴露给外部。
阅读全文