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

相关推荐
Highcharts.js1 小时前
倒置百分比堆叠面积图表示列详解|Highcharts大气成分图表代码
开发语言·信息可视化·highcharts·图表开发·面积图·图表示例·推叠图
Li emily1 小时前
解决了加密货币api多币种订阅时的数据乱序问题
人工智能·python·api·fastapi
csdn_aspnet1 小时前
C语言 Lomuto分区算法(Lomuto Partition Algorithm)
c语言·开发语言·算法
Dicky-_-zhang1 小时前
消息队列Kafka/RocketMQ选型与高可用架构:从单体到100万TPS的演进
java·jvm
晨曦中的暮雨1 小时前
4.15腾讯 CSIG云服务产线 一面
java·开发语言
2301_781571422 小时前
Golang格式化输出占位符都有什么_Golang fmt占位符教程【通俗】
jvm·数据库·python
存在morning2 小时前
【GO语言开发实践】二 GO 并发快速上手
大数据·开发语言·golang
fake_ss1982 小时前
AI时代学习全栈项目开发的新范式
java·人工智能·学习·架构·个人开发·学习方法
asdzx672 小时前
使用 Python 为 PDF 添加页码 (详细教程)
python·pdf·页码
茉莉玫瑰花茶2 小时前
工作流的常见模式 [ 1 ]
java·服务器·前端