Java多线程——模拟银行存取钱功能-实验四

本文介绍了一个Java编程实验,模拟银行的存取款业务。通过创建两个线程分别代表两个用户,利用Runnable接口实现。设计了银行类、储户类和测试类,其中银行类包含账户实体、存取款和查询余额方法,存取款方法使用synchronized确保线程安全。测试类使用for循环启动线程模拟用户操作。
摘要由CSDN通过智能技术生成

目录

1.任务描述

2.思路及步骤

3.代码实现如下

4.运行结果如图


1.任务描述

在银行办理业务时,通常银行会开多个窗口,客户排队等候,窗口办理完业务,会呼叫下一个用户办理业务。本案例要求编写一个程序模拟银行存取钱业务办理。假如有两个用户在存取钱,两个用户分别操作各自的账户,并在控制台打印存取钱的数量以及账户的余额。

2.思路及步骤

(1)通过任务描述和运行结果可以看出,该任务需要使用多线程的相关知识来是实现。由于两个用户操作各自的账户,因此我们需要创建两个线程完成每个用户的操作。这里我们使用实现Runnable接口的方法来创建线程。

(2)既然是储户去银行存款,那么可以得出该任务会涉及到三个类,分别是银行类、储户类和测试类。

(3)定义一个实体类作为账务的集合,包括用户名、登录名、登录密码、钱包、取钱时间和存钱时间等字段。

(4)在银行类中需要定义一个账户的实体类、一个存钱的方法、一个取钱的方法、查询余额的方法和获取当前用户的方法。获取当前用户方法需要使用synchronized线程锁判断是哪一位用户,在存钱和取钱的方法中先调用获取当前用户方法判断操作者,再进行存取钱操作,需要注意的是在进行取钱操作时,需要判断余额是否大于需要取的钱数。

(5)在测试类中使用for循环调用线程模拟用户存取钱操作。

3.代码实现如下

(1)User.java

public class User {
    private String u_name;//用户名
    private String u_login_name;//登录名 卡的id
    private String u_login_pwd;//登录密码
    private String u_wallet;//钱包
    private Date draw_mon
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值