银行系统:实现银行系统的存取操作
package com.qf.work;
import java.util.Scanner;
//创建用户
class Person {
// 账号
private String account;
// 余额
private double money;
public Person() {
}
public Person(String account, double money) {
super();
this.account = account;
this.money = money;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public double getAmount() {
return money;
}
public void setAmount(double amount) {
this.money = amount;
}
}
class save extends Thread {
// 定义账号(余额)
Person person;
public save(Person account) {
super();
this.person = account;
}
@Override
public void run() {
while (true) {
// 创锁
synchronized (person) {
System.out.println("请输入你存入的金额:");
int num = new Scanner(System.in).nextInt();
person.setAmount(person.getAmount() + num);
person.notify();
System.out
.println(Thread.currentThread().getName() + ":存款金额是:" + num + ",当前余额是:" + person.getAmount());
try {
Thread.sleep(1000);//休息1秒
} catch (InterruptedException e) {
}
break;
}
}
}
}
class take extends Thread {
Person person;
public take(Person person) {
super();
this.person = person;
}
@Override
public void run() {
while (true) {
synchronized (person) {
System.out.println("请输入你取出的金额:");
int num = new Scanner(System.in).nextInt();
// 取出的金额不能大于账户的余额
if (num > person.getAmount()) {
try {
System.out.println(Thread.currentThread().getName() + ":您要取:" + num + ",但是您的余额不足!您的余额是:"
+ person.getAmount());
person.wait();
} catch (InterruptedException e) {
}
} else {
// 取钱
person.setAmount(person.getAmount() - num);
System.out
.println(Thread.currentThread().getName() + ":取现金额是" + num + ",余额是:" + person.getAmount());
}break;
}
}
}
}
public class test1 {
public static void main(String[] args) {
Person person = new Person();
Thread save= new save(person);
Thread take = new take(person);
save.setName("存钱");
take.setName("取钱");
save.start();
take.start();
}
}