class BankAccount {
/**
* @param args
*/
private static int amount = 2000; //账户余额最初为2000
public void despoit(int m) //定义存款的方法
{
amount = amount + m;
System.out.println("小明存入[" + m +"元");
}
public void withdraw(int m) //定义取款的方法
{
if(amount <= 0)
{
System.out.println("***余额不足!***");
return;
}
amount = amount - m;
System.out.println("张新取走[" + m + "元]");
}
public int balance() //定义得到账户余额的方法
{
return amount;
}
}
class Customer extends Thread
{
String name;
BankAccount bs; //定义一个具体的账户对象
public Customer(BankAccount b,String s)
{
name = s;
bs = b;
}
public synchronized static void cus(String name,BankAccount bs)
{
if(name.equals("小明")) //判断用户是不是小明
{
try
{
for(int i = 0;i < 6;i++)
{
Thread.currentThread().sleep((int)(Math.random() * 300));
bs.despoit(1000);
}
}
catch(InterruptedException e)
{
}
}
else
{
try
{
for(int i = 0;i < 6;i++)
{
Thread.currentThread().sleep((int)(Math.random() * 300));
bs.withdraw(1000);
}
}
catch(InterruptedException e)
{
}
}
}
public void run() //定义run方法
{
cus(name,bs);
}
}
public class AccountTest1
{
public static void main(String args[]) throws InterruptedException
{
BankAccount bs = new BankAccount();
Customer customer1 = new Customer(bs,"小明");
Customer customer2 = new Customer(bs,"张新");
Thread t1 = new Thread(customer1);
Thread t2 = new Thread(customer2);
t1.start();
t2.start();
Thread.currentThread().sleep(500);
}
}