news 2026/8/31 21:17:14

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/9/1 5:45:38

NSTool深度解析:Switch文件格式的终极处理指南

NSTool深度解析&#xff1a;Switch文件格式的终极处理指南 【免费下载链接】nstool General purpose read/extract tool for Nintendo Switch file formats. 项目地址: https://gitcode.com/gh_mirrors/ns/nstool NSTool作为一款专业的Nintendo Switch文件格式读取和提取…

作者头像 李华
网站建设 2026/9/1 0:59:09

专为极客而生的软件无线电平台 ANTSDR E310 vs Pluto SDR对比测评

ANTSDR E310 vs Pluto SDR对比测评微相ANTSDR E310软件无线电开发板是一款专为高阶研发与专业应用设计的高性能、全开源SDR平台。与常见的入门级设备如Pluto SDR相比&#xff0c;E310在硬件性能、系统灵活性与开发生态方面展现出显著优势&#xff0c;适用于工业预研、通信系统集…

作者头像 李华
网站建设 2026/9/1 4:41:56

SpringBoot集成Spring Statemachine(状态机)实战教程

背景本文将基于借款订单状态流转这个场景来实现。如果使用if-else或者switch语句来处理这些状态&#xff0c;代码会变得非常臃肿且难以维护。而状态机提供了一种更加结构化和可维护的方式来管理这些状态转换。示例中涉及到&#xff1a;状态机的配置、数据持久化、状态恢复查询、…

作者头像 李华
网站建设 2026/8/31 19:11:08

Admin.NET通用权限开发框架:快速构建企业级管理系统的终极指南

在当今快速发展的企业信息化时代&#xff0c;一个高效、稳定且易扩展的后台管理系统对于任何组织都至关重要。Admin.NET作为基于.NET 6/8技术栈的通用权限开发框架&#xff0c;为开发者提供了快速构建企业级管理系统的完整解决方案。无论你是初学者还是资深开发者&#xff0c;这…

作者头像 李华
网站建设 2026/9/1 9:58:16

为什么你的LangGraph Agent跑不满CPU?:深度剖析Docker资源分配盲区

第一章&#xff1a;为什么你的LangGraph Agent跑不满CPU&#xff1f;&#xff1a;深度剖析Docker资源分配盲区在部署LangGraph Agent时&#xff0c;许多开发者发现即使负载增加&#xff0c;CPU利用率依然无法达到预期。这往往并非代码效率问题&#xff0c;而是Docker容器的资源…

作者头像 李华
网站建设 2026/9/1 10:40:13

GEO服务商五强对决:技术架构、平台覆盖与效果保障的全面横评

摘要与排名速览随着DeepSeek、Kimi、ChatGPT、文心一言等AI搜索工具日均请求量突破十亿次&#xff0c;用户获取信息的核心入口正发生结构性迁移。GEO&#xff08;生成式引擎优化&#xff09;应运而生&#xff0c;其目标不再是传统SEO的“网页点击”&#xff0c;而是让品牌内容被…

作者头像 李华