public class Account{ private String name; //储户姓名 private double balance; //账户余额 public Account(String name) { this.name = name; this.balance = 0; } public String getName() //返回账户名 { return name; }
public double balance() //查看账户余额 { return balance; }
public void put(double value) //存款操作,参数为存入金额 { if (value>0) this.balance += value; //存款操作使余额值增加 } public double get(double value) //取款操作,参数为取款金额,返回实际取到金额 { if (value>0) { if (value<=this.balance) this.balance -= value; //取款操作使余额值减少 else //账户余额不够所取时 { value = this.balance; //取走全部余额 this.balance = 0; } return value; //返回实际取款额 } return 0; }}
class SaveLock extends Thread{ private Account account; //账户 private double value; //存款金额 public SaveLock(Account a1,double value) { this.account = a1; this.value = value; } public void run() { synchronized(this.account) { double howmatch = this.account.balance();//查看账户余额 try { sleep(1); //花费时间,线程执行被打断 } catch(InterruptedException e) {} this.account.put(this.value); System.out.println(this.account.getName()+"账户:现有"+howmatch+ ", 存入"+this.value+", 余额"+this.account.balance()); } } }
class FetchLock extends Thread { private Account account; private double value; public FetchLock(Account a1,double value) { this.account = a1; this.value = value; } public void run() { synchronized(this.account) { double howmatch = this.account.balance();//查看账户余额 try{sleep(1); } //花费时间,线程执行被打断 catch(InterruptedException e) {} System.out.println(this.account.getName()+"账户:现有"+howmatch+ ", 取走"+this.account.get(this.value)+", 余额"+this.account.balance()); } } public static void main(String args[]) { Account wang = new Account("Wang"); (new SaveLock(wang,100)).start(); (new SaveLock(wang,200)).start(); (new FetchLock(wang,300)).start(); }}
不会插代码排版 不好意思啊。。。
你 给我 一个 QQ 号码。我给你发TXT文档。。貌似不是配置出问题。。。。这里 我 不会插入代码。。很乱的。
追答你有eclipse吗?把代码放进去邮件一个单词(忘了怎么拼,你百度一下)可以自动整理格式的,然后run一下,再看错误提示
你 给我 一个 QQ 号码。我给你发TXT文档。。拿到类外 也是错。反正 我真的不会弄了。求解。。。。这里 我 不会插入代码。。很乱的。
追答main 函数拉到外面来以后,对类内的函数调用要修改。
追问不会 弄啊。。拿出来之后显示 找不到主函数