class BankAccount //定義銀行賬戶類BankAccount
{
private static int amount = 2000;//賬戶的餘額最初為2000
public void depoit (int m)//定義存款的方法
{
amount=amount+m;
System.out.println("小明存入了"+m+"元");
}
public void withdraw(int m)//定義取款方法
{
amount=amount-m;
System.out.println("張新取走"+m+"元");
if(amount<m)
System.out.println("**餘額不足**");
}
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.depoit(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);
}
}