You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.6 KiB
84 lines
2.6 KiB
public class BankAccount {
|
|
// 私有属性:账户号(final修饰,不可修改)
|
|
private final String accountNumber;
|
|
// 私有属性:户主姓名(可修改)
|
|
private String ownerName;
|
|
// 私有属性:余额(只能通过存款和取款操作改变)
|
|
private double balance;
|
|
|
|
/**
|
|
* 构造方法:创建账户时必须提供账户号和户主姓名,初始余额为0
|
|
* @param accountNumber 账户号(创建后不可修改)
|
|
* @param ownerName 户主姓名
|
|
*/
|
|
public BankAccount(String accountNumber, String ownerName) {
|
|
this.accountNumber = accountNumber;
|
|
this.ownerName = ownerName;
|
|
this.balance = 0.0;
|
|
}
|
|
/// 获取账户号(只读,无setter方法)
|
|
/// @return 账户号
|
|
public String getAccountNumber() {
|
|
return accountNumber;
|
|
}
|
|
|
|
/**
|
|
* 获取户主姓名
|
|
* @return 户主姓名
|
|
*/
|
|
public String getOwnerName() {
|
|
return ownerName;
|
|
}
|
|
|
|
/**
|
|
* 修改户主姓名
|
|
* @param ownerName 新的户主姓名
|
|
*/
|
|
public void setOwnerName(String ownerName) {
|
|
this.ownerName = ownerName;
|
|
System.out.println("户主姓名已修改为:" + ownerName);
|
|
}
|
|
|
|
/**
|
|
* 查询余额(只读,无setter方法)
|
|
* @return 当前余额
|
|
*/
|
|
public double getBalance() {
|
|
return balance;
|
|
}
|
|
|
|
/**
|
|
* 存款操作
|
|
* @param amount 存款金额(必须大于0)
|
|
*/
|
|
public void deposit(double amount) {
|
|
if (amount > 0) {
|
|
balance += amount;
|
|
System.out.println("存款 " + amount + " 元成功,当前余额:" + balance + " 元");
|
|
} else {
|
|
System.out.println("存款金额必须大于0!");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 取款操作
|
|
* @param amount 取款金额(必须大于0且不超过当前余额)
|
|
*/
|
|
public void withdraw(double amount) {
|
|
if (amount <= 0) {
|
|
System.out.println("取款金额必须大于0!");
|
|
} else if (amount > balance) {
|
|
System.out.println("余额不足!当前余额为 " + balance + " 元,无法取出 " + amount + " 元。");
|
|
} else {
|
|
balance -= amount;
|
|
System.out.println("取款 " + amount + " 元成功,当前余额:" + balance + " 元");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 查询余额并打印信息
|
|
*/
|
|
public void queryBalance() {
|
|
System.out.println("账户 " + accountNumber + " 当前余额为:" + balance + " 元");
|
|
}
|
|
}
|