java基础案例3-2银行存取款
时间: 2024-10-12 11:00:17 浏览: 8
在Java基础案例中,关于银行存取款的操作通常会涉及到简单的账户管理系统。我们可以创建一个"Account"类作为基类,它包含账户的基本信息(如账号、余额)以及基本的存款和取款操作。然后,可以创建两个具体的子类,比如"SavingsAccount"(储蓄账户)和"CheckingAccount"(支票账户),它们可能会有额外的功能或利息计算。
以下是一个简化版的银行存取款例子:
```java
// 基础账户类
public class Account {
private String accountNumber;
private double balance;
public Account(String accountNumber, double initialBalance) {
this.accountNumber = accountNumber;
this.balance = initialBalance;
}
// 存款和取款方法
public void deposit(double amount) {
if (amount > 0) {
balance += amount;
}
}
public void withdraw(double amount) {
if (amount > 0 && balance >= amount) {
balance -= amount;
} else {
System.out.println("Insufficient balance or invalid withdrawal amount.");
}
}
// 获取余额方法
public double getBalance() {
return balance;
}
}
// 子类例如:储蓄账户
class SavingsAccount extends Account {
// 可能添加年利率属性和利息计算方法
private double interestRate;
public SavingsAccount(String accountNumber, double initialBalance, double interestRate) {
super(accountNumber, initialBalance);
this.interestRate = interestRate;
}
@Override
public void deposit(double amount) {
super.deposit(amount);
// 计算并累加利息
double interest = amount * interestRate / 12;
balance += interest;
}
}
// 支票账户
class CheckingAccount extends Account {
// 可能有额外的服务费用或转账限制
private boolean has overdraftProtection;
public CheckingAccount(String accountNumber, double initialBalance) {
super(accountNumber, initialBalance);
has overdraftProtection = false;
}
public void withdraw(double amount) {
// 考虑是否有透支保护
if (!hasOverdraftProtection || balance >= amount) {
super.withdraw(amount);
} else {
System.out.println("Withdrawal not allowed due to insufficient balance.");
}
}
}
// 使用示例
public static void main(String[] args) {
Account myAccount = new SavingsAccount("123456", 1000, 0.05); // 创建储蓄账户
myAccount.deposit(500);
myAccount.withdraw(200);
// 更换账户类型
myAccount = new CheckingAccount("789012", 500); // 创建支票账户
// 试图从支票账户提取超出余额的金额,将会提示错误
myAccount.withdraw(700);
}
```
阅读全文