JAVA 100道题(19)

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 小时前
【Appium 系列】第16节-WebView-H5上下文切换 — 混合应用的自动化难点
运维·开发语言·人工智能·功能测试·appium·自动化·测试用例
测试19982 小时前
软件测试 - 单元测试总结
自动化测试·软件测试·python·测试工具·职场和发展·单元测试·测试用例
Mahir084 小时前
Spring 循环依赖深度解密:从问题本质到三级缓存源码级解析
java·后端·spring·缓存·面试·循环依赖·三级缓存
曲幽4 小时前
我用了FastApiAdmin后,连夜把踩过的坑都整理出来了
redis·python·postgresql·vue3·fastapi·web·sqlalchemy·admin·fastapiadmin
杜子不疼.5 小时前
【C++ AI 大模型接入 SDK】 - DeepSeek 模型接入(上)
开发语言·c++·chatgpt
加号35 小时前
【C#】 串口通信技术深度解析及实现
开发语言·c#
sycmancia5 小时前
Qt——编辑交互功能的实现
开发语言·qt
RyFit6 小时前
SpringAI 常见问题及解决方案大全
java·ai
石山代码6 小时前
C++ 内存分区 堆区
java·开发语言·c++
前端若水6 小时前
会话管理:创建、切换、删除对话历史
前端·人工智能·python·react.js