罗燕仪贤

导航

 

 

 -------------------------------------------------------------------------------------两个人AB通过一个账户A在柜台取钱和B在ATM机取钱!----------------------------------------------------------------------

(一)创建一个Bank类

 

package com.xykj.bank;

public class Bank {

// 假设一个账户有1000块钱
static int money = 1000;

// 柜台Counter取钱的方法
public void Counter(int money) {// 参数是每次取走的钱
Bank.money -= money;//取钱后总数减少
System.out.println("A取走了" + money + "还剩下" + (Bank.money));
}

// ATM取钱的方法
public void ATM(int money) {// 参数是每次取走的钱
Bank.money -= money;//取钱后总数减少
System.out.println("B取走了" + money + "还剩下" + (Bank.money));
}

}
 

-------------------------------(二)创建一个PersonA类---------------------------------------

package com.xykj.bank;


public class PersonA extends Thread {
// 创建银行对象
Bank bank;

// 通过构造器传入银行对象,确保两个人进入的是一个银行
public PersonA(Bank bank) {
this.bank = bank;
}

//重写run方法,在里面实现使用柜台取钱
@Override
public void run() {
while (Bank.money >= 100) {
bank.Counter(100);// 每次取100块
try {
sleep(100);// 取完休息0.1秒
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
  

-------------------------(三)创建一个PersonB类------------------


package com.xykj.bank;

public class PersonB extends Thread {
// 创建银行对象
Bank bank;

// 通过构造器传入银行对象,确保两个人进入的是一个银行
public PersonB(Bank bank) {
this.bank = bank;
}

// 重写run方法,在里面实现使用柜台取钱
@Override
public void run() {
while (Bank.money >= 200) {
bank.ATM(200);// 每次取200块
try {
sleep(100);// 取完休息0.1秒
} catch (InterruptedException e) {
e.printStackTrace();
}
}

}
}
----------------------------------------------创建创建一个测试类的调用类-------------------------------------
public class Mainclass {

/**
* @param args
*/
public static void main(String[] args) {
Bank bank=new Bank();
PersonA a=new PersonA(bank);
PersonB b=new PersonB(bank);
// 两个人开始取钱
a.start();
b.start();

}

}

 

posted on 2018-03-07 21:59  初夏之仪  阅读(174)  评论(0编辑  收藏  举报