news 2026/4/30 19:28:35

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/4/27 21:15:52

B站数据分析终极指南:一键掌握UP主内容趋势

B站数据分析终极指南&#xff1a;一键掌握UP主内容趋势 【免费下载链接】biliscope Bilibili chrome extension to show uploaders stats 项目地址: https://gitcode.com/gh_mirrors/bi/biliscope 在当今内容爆炸的时代&#xff0c;如何在海量的B站视频中快速找到有价值…

作者头像 李华
网站建设 2026/4/20 8:15:18

【AI应用部署新范式】:Docker + Vercel AI SDK 构建高性能API服务

第一章&#xff1a;AI应用部署新范式概述随着人工智能技术的快速发展&#xff0c;AI应用的部署方式正在经历深刻变革。传统的部署模式往往依赖于静态模型与固定基础设施&#xff0c;难以应对动态负载和持续迭代的需求。如今&#xff0c;以容器化、服务网格和无服务器架构为代表…

作者头像 李华
网站建设 2026/4/20 22:01:26

小红书 文章采集器

只要有文章url就行&#xff0c;图片&#xff0c;视频&#xff0c;文字都能采集到&#xff0c;json个是返回结果存储 具体插件安装及使用方法参考&#xff1a;https://greasyfork.org/zh-CN/scripts/559126-%E5%B0%8F%E7%BA%A2%E4%B9%A6%E5%85%A8%E9%87%8F%E6%95%B0%E6%8D%AE%E…

作者头像 李华
网站建设 2026/4/30 2:05:06

运维人慌了!大模型要来“抢饭碗“?不,这是你的“职场升级包“!小白程序员必看大模型如何重构IT运维新生态

背景 在科技的发展以及现有大环境降本增效的趋势下&#xff0c;企业对IT运维的要求也越来越高。然而&#xff0c;许多企业仍然依赖传统的运维方式&#xff0c;这种模式在面对复杂的IT环境时暴露出诸多问题。 首先&#xff0c;运维效率低下成为一大痛点。传统运维方式主要依靠…

作者头像 李华
网站建设 2026/4/29 18:18:28

Vue响应式原理

Vue响应式原理 数据劫持&#xff1a;vue2的Object.defineProperty(对属性添加getter和setter方法)&#xff0c;vue3的Proxy。依赖收集&#xff1a;模板渲染时收集&#xff0c;computed收集&#xff0c;watch收集。依赖执行&#xff1a;将收集到的依赖依次执行。 依赖其实就是数…

作者头像 李华
网站建设 2026/4/22 9:28:12

Docker Compose Agent配置没人说的秘密:4种性能优化方案曝光

第一章&#xff1a;Docker Compose Agent配置的现状与挑战在现代容器化应用部署中&#xff0c;Docker Compose 作为定义和运行多容器应用的重要工具&#xff0c;广泛用于开发、测试及轻量级生产环境。然而&#xff0c;随着服务规模的增长和部署复杂度的提升&#xff0c;基于 Do…

作者头像 李华