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块中捕获该异常,打印出相应的错误消息

相关推荐
小羊先生car15 分钟前
RTOS-F429-HAL-(动/静态)任务的创建(2026/7/27)
开发语言·算法·c#
桐薇全肯定33 分钟前
MySQL学生成绩管理系统实战操作
java·数据库·sql
爱昏羔34 分钟前
上篇:从PDF到向量库 — 物流行业RAG系统的知识库构建全解析
python·langchain·pdf·agent·rag
麻雀飞吧38 分钟前
最新量化实现难点,规则和流程要先有形状
人工智能·python
用户03321266636741 分钟前
使用 Python 在 Word 文档中添加或删除文本框
python
LONGZETECH44 分钟前
新能源汽车动力系统仿真硬核拆解:五系统分层架构的设计逻辑与技术权衡
c语言·开发语言·架构·汽车·汽车仿真教学软件·汽车教学软件
Nuanyt1 小时前
SSM 学习记录 第二部分 Spring整合Mybatis&Junit AOP核心概念 Spring事务管理 SpringMVC 请求与响应 Rest风格
java·spring·junit·mybatis·restful
醉城夜风~1 小时前
C++模板详解:从基础到高级全面解析
java·开发语言·c++
地球驾驶员1 小时前
NX二次开发C#-获取体的外表面
开发语言·c#