JAVA 100道题(19)

本文介绍了如何使用Java编程模拟银行转账过程,包括BankAccount类的定义、转账操作和处理可能的余额不足异常(InsufficientBalanceException)。示例中展示了如何创建账户、转账以及捕获异常情况。
摘要由CSDN通过智能技术生成

19.编写一个程序,模拟银行转账过程,处理可能的余额不足异常。

下面是一个简单的Java程序,用于模拟银行转账过程,并处理可能的余额不足异常。

首先,我们定义一个BankAccount类,该类包含账户的基本信息(如账户名和余额)以及一个transfer方法用于转账。如果转账导致余额不足,transfer方法将抛出InsufficientBalanceException异常。

然后,我们定义一个InsufficientBalanceException类,该类继承自Exception类,用于表示余额不足的异常情况。

最后,我们在Main类中创建两个BankAccount对象,并模拟转账过程。

 

java复制代码

// BankAccount.java
public class BankAccount {
private String name;
private double balance;
public BankAccount(String name, double balance) {
this.name = name;
this.balance = balance;
}
public void deposit(double amount) {
this.balance += amount;
}
public void withdraw(double amount) throws InsufficientBalanceException {
if (amount > balance) {
throw new InsufficientBalanceException("Insufficient balance in account " + name);
}
this.balance -= amount;
}
public void transfer(BankAccount receiver, double amount) throws InsufficientBalanceException {
withdraw(amount);
receiver.deposit(amount);
}
public String getName() {
return name;
}
public double getBalance() {
return balance;
}
}
// InsufficientBalanceException.java
public class InsufficientBalanceException extends Exception {
public InsufficientBalanceException(String message) {
super(message);
}
}
// Main.java
public class Main {
public static void main(String[] args) {
BankAccount account1 = new BankAccount("Alice", 1000);
BankAccount account2 = new BankAccount("Bob", 500);
try {
account1.transfer(account2, 600); // Alice transfers 600 to Bob
System.out.println("Transfer successful.");
System.out.println("Alice's balance: " + account1.getBalance());
System.out.println("Bob's balance: " + account2.getBalance());
} catch (InsufficientBalanceException e) {
System.out.println("Transfer failed: " + e.getMessage());
}
}
}

在上面的示例中,我们创建了两个BankAccount对象:account1(属于Alice,余额为1000)和account2(属于Bob,余额为500)。然后,我们尝试从account1account2转账600元。由于account1的余额足够,转账将成功执行,并打印出转账后的余额。如果我们尝试转账的金额超过账户的余额,transfer方法将抛出InsufficientBalanceException异常,并在catch块中捕获该异常,打印出相应的错误消息

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值