⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 communicate.java

📁 在多种运行环境中均可实现
💻 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 + -