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

相关推荐
淼澄研学几秒前
Python实战:基于LangChain与Chroma构建企业级RAG知识库问答系统
开发语言·python·langchain
赵广陆5 分钟前
Spring AI的聊天模型
java·人工智能·spring
IT 小阿姨(数据库)11 分钟前
K8s v1.24.17 完整搭建文档(CentOS7 + containerd1.6.33 + Calico)
java·容器·kubernetes
辰辉创聚12 分钟前
In Vivo抗体是什么?| 体内抗体与普通科研抗体的区别
人工智能·python·时序数据库·in vivo抗体·体内抗体·体内级抗体
深圳市宝华视联15 分钟前
Python 读取 IP 视频流简单 Demo
python·嵌入式硬件·opencv·网络协议·tcp/ip·实时音视频·嵌入式实时数据库
4311媒体网17 分钟前
帝国CMS网站自定义搭建技巧
服务器·开发语言·前端
布莱克60523 分钟前
C++拷贝构造与拷贝赋值运算符的区别详解
开发语言·c++
门思科技33 分钟前
LoRaWAN Regional Parameters:为什么 CN470 和 EU868 的频点数不同
python·物联网
lhldsg41 分钟前
全民健身解决方案:从共享球场到智能运营的技术实践
java·大数据·开发语言·需求分析
vipxieliang44 分钟前
ValidX时间注解完全指南:10种时间验证注解详解
java·后端