📄 communicate.java
字号:
package com;
import java.util.Random;
public class Communicate
{
//成员字段
private boolean sign1; //用来标记学校是否发出收费通知
private boolean sign2; //老爸是否已经寄钱
private boolean sign3; //老爸向学校确认是否要交钱
private int account=Math.abs(new Random().nextInt(1000));//定义账户,并且该账户随机生成一个数
//构造方法
public Communicate()
{
}
public int display_account()
{
return account;
}
public int send_account()
{
account=account+1000;
return account;
}
public boolean get_sign1()
{
return this.sign1;
}
public void set_sign1(boolean symbol)
{
this.sign1=symbol;
}
public boolean get_sign2()
{
return this.sign2;
}
public void set_sign2(boolean symbol)
{
this.sign2=symbol;
}
public boolean get_sign3()
{
return this.sign3;
}
public void set_sign3(boolean symbol)
{
this.sign3=symbol;
}
class school extends Thread
{
//成员字段
private Communicate com;
//构造方法
public school(Communicate com)
{
this.com=com;
}
public void run()
{
//向学生发出要交钱的通知
System.out.println("学校通知学生要收取1000元的学杂费用。");
try{
sleep((int)(Math.random()*100));//随机休眠
}catch(Exception e){};
com.set_sign1(true);
while(true)
{
if(com.get_sign3())
{
System.out.println("学校回复确实要收费的通知");
try{
sleep((int)(Math.random()*100));//随机休眠
}catch(Exception e){};
}
if(com.account>=1000)
{
System.out.println("学校扣费成功,你的当前账户余额为:"+(account-1000));
return;
}
}
}
}
class student extends Thread
{
public Communicate com;
//构造方法
public student(Communicate com)
{
this.com=com;
}
public void run()
{
while(true)
{
if(com.get_sign1())
{
System.out.println("学生接到学校通知,需交学杂费1000!");
//检查自己的账户余额,若不够就打电话回家叫老爸寄钱
System.out.println("学生当前账户余额为:"+display_account());
if(account<1000)
{
System.out.println("学生因不够钱所以打电话回家叫老爸寄钱");
//设立一个标志
com.set_sign2(true);
}
return;
}
}
}
}
class father extends Thread
{
public Communicate com;
//构造方法
public father(Communicate com)
{
this.com=com;
}
public void run()
{
while(true)
{
if(get_sign2())
{
//向学校确认是否要交钱
System.out.println("老爸向学校确认学校是否要收杂费");
com.set_sign3(true);
try{
sleep((int)(Math.random()*100));//随机休眠
}catch(Exception e){};
com.send_account();
System.out.println("老爸已经往账户存钱");
System.out.println("学生当前账户余额为:"+display_account());
return;
}
}
}
}
public static void main(String args[])
{
Communicate com= new Communicate();
school sch=com.new school(com);
student stu=com.new student(com);
father fat=com.new father(com);
sch.start();
stu.start();
fat.start();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -