news 2026/5/26 5:53:46

Java 存储钱取钱作业

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java 存储钱取钱作业

package testthread3;

public class testwork7next4 {

public static void main(String[] args) throws InterruptedException {

Account account = new Account("张三",200);

System.out.println("初始账户信息:" + account);

Thread1 thread1 = new Thread1(account,100);

Thread2 thread2 = new Thread2(account,50);

thread1.start();

thread2.start();

thread1.join();

thread2.join();

System.out.println("最终账户信息:" + account);

System.out.println("最终账户余额应为250元:" + account.getBalance());

}

}

class Account {

private String username;

private double balance;

public Account(String username, double balance) {

this.username = username;

this.balance = balance;

}

public synchronized void cunkuan (double amount){

if (amount>0){

balance += amount;

System.out.println("存款后余额:"+balance);

}

}

public synchronized void qukuan (double amount){

if (amount > 0 && amount<= balance){

balance -= amount;

System.out.println("取款后余额:"+ balance);

}else if(amount > balance){

System.out.println("取款是白!余额不足");

}

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public double getBalance() {

return balance;

}

public void setBalance(double balance) {

this.balance = balance;

}

@Override

public String toString() {

return "Account{" +

"username='" + username + '\'' +

", balance=" + balance +

'}';

}

}

class Thread1 extends Thread{ //存款线程

private Account account;

private double amount;

public Thread1(Account account,double amount){

super("存款线程1");

this.account = account;

this.amount = amount;

}

public void run(){

account.cunkuan(amount);

System.out.println("操作完成");

}

}

class Thread2 extends Thread { // 取款线程

private Account account;

private double amount;

public Thread2(Account account, double amount) {

super("取款线程B");

this.account = account;

this.amount = amount;

}

public void run() {

System.out.println(getName() + " 开始操作...");

account.qukuan(amount);

System.out.println(getName() + " 操作完成");

}

}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/26 3:31:19

Docker Scout忽略规则配置完全手册,从入门到精通一键掌握

第一章&#xff1a;Docker Scout忽略规则配置概述Docker Scout 是 Docker 官方提供的安全分析工具&#xff0c;用于识别镜像中的已知漏洞、软件包风险和配置问题。在实际开发与部署过程中&#xff0c;某些安全告警可能因环境特殊性或业务兼容性原因需要被有选择地忽略。为此&am…

作者头像 李华
网站建设 2026/5/26 4:44:59

Docker Offload任务调度进阶:从基础分配到智能预测的4个关键步骤

第一章&#xff1a;Docker Offload任务调度的核心概念在现代分布式计算环境中&#xff0c;Docker Offload任务调度是一种将容器化工作负载从主节点卸载到边缘或辅助节点执行的机制。其核心目标是优化资源利用率、降低主节点负载&#xff0c;并提升整体系统的可扩展性与响应速度…

作者头像 李华
网站建设 2026/5/25 15:45:40

【量子开发环境搭建】:如何在VSCode中100%成功配置并验证Qiskit?

第一章&#xff1a;量子开发环境搭建的核心意义 在进入量子计算的实际开发之前&#xff0c;构建一个稳定、高效的量子开发环境是不可或缺的第一步。这不仅是运行量子算法的基础平台&#xff0c;更是连接理论研究与工程实践的桥梁。一个完善的开发环境能够支持量子电路的设计、模…

作者头像 李华
网站建设 2026/5/26 2:26:11

40、Linux 软件安装与使用基础指南

Linux 软件安装与使用基础指南 1. 软件安装方式 1.1 从 tarball 安装 每个软件包在创建和安装组件的方式上可能略有不同。建议将解压后的 tar 归档文件复制到一个目录,然后进入该目录,查找 INSTALL 或 README 文件以获取具体的操作说明。 以下是以 root 用户身份在终…

作者头像 李华
网站建设 2026/5/25 8:06:54

揭秘VSCode远程调试中的环境变量陷阱:99%开发者忽略的细节

第一章&#xff1a;揭秘VSCode远程调试中的环境变量陷阱在使用 VSCode 进行远程开发或调试时&#xff0c;环境变量的配置常成为开发者忽略却影响重大的环节。当本地与远程环境存在差异&#xff0c;未正确传递或设置环境变量&#xff0c;可能导致应用启动失败、认证错误或配置缺…

作者头像 李华
网站建设 2026/5/25 5:00:54

破解异地用工难题:终成国际一站式人事外包服务

还在为异地员工社保缴纳、各地政策不一而头痛吗&#xff1f;管理成本居高不下&#xff0c;合规风险如影随形&#xff1f;终成国际人事服务外包&#xff0c;是您破解这些难题的“金钥匙”。 我们成立于2010年&#xff0c;深耕人力资源服务领域16年&#xff0c;服务网络覆盖全国…

作者头像 李华