老师,检查作业,看一下有没有需要修改的
来源:5-3 自由编程
UUU加油
2022-05-17 15:27:48
public class Weather {
private int temperature;//温度
private int humidity;//湿度
boolean flag=false;
public Weather() {
}
public int getTemperature() {
return temperature;
}
public void setTemperature(int temperature) {
this.temperature = temperature;
}
public int getHumidity() {
return humidity;
}
public void setHumidity(int humidity) {
this.humidity = humidity;
}
//生成天气数据的方法
public synchronized void generate() {
if(flag) {
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
temperature=(int) (Math.random()*41);
this.setTemperature(temperature);
humidity=(int)(Math.random()*101);
this.setHumidity(humidity);
System.out.println("生成天气数据:"+this.toString());
flag=true;
notifyAll();
}
//读取天气的方法
public synchronized void read() {
if(!flag) {
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("读取天气数据:"+this.toString());
flag=false;
notifyAll();
}
public String toString() {
return "[温度:"+temperature+",湿度:"+humidity+"]";
}
}public class GenerateWeather implements Runnable {
Weather weather;
public GenerateWeather(Weather weather) {
this.weather=weather;
}
@Override
public void run() {
for(int i=0;i<=100;i++)
weather.generate();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}public class ReadWeather implements Runnable {
Weather weather;
public ReadWeather(Weather weather) {
this.weather=weather;
}
@Override
public void run() {
for(int i=0;i<=100;i++) {
weather.read();
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}public class WeatherTest {
public static void main(String[] args) {
//创建Weather对象
Weather we=new Weather();
//实例化线程类并启动线程
new Thread(new GenerateWeather(we)).start();;
new Thread(new ReadWeather(we)).start();;
}
}1回答
好帮手慕小脸
2022-05-17
同学你好,代码是正确的,完成的不错,继续加油!
祝学习愉快~
相似问题