天气类Weather怎么写,尤其是里面的 读取天气数据 方法和 toString 方法怎么写?
package weatherforecast;
public class Weather {
private int temperature;
private int humidity;
boolean flag=false;
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();
}
}
int getTem=(int)(Math.random()*40);
int getHum=(int)(Math.random()*100);
System.out.println("生成天气数据["
+ "温度:"+getTem+",湿度:"+getHum);
flag=true;
notifyAll();
}
public void read(){// 读取天气数据
if(!flag){
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("读取天气数据["
+ "温度:"+getTem+",湿度:"+getHum);
}
public String toString(){
return "生成天气数据["
+ "温度:"+getTem+",湿度:"+getHum
+"读取天气数据["
+ "温度:"+getTem+",湿度:"+getHum);
}
}13
收起
正在回答
1回答
同学你好,Weather可以按照如下思路编写:
(1)首先编写温度和湿度属性以及对应的getter和setter方法
(2)定义布尔类型的属性flag用于判断是生成还是读取天气信息。
(3)编写生成天气数据的方法generate()
因为flag的目的是为了保证生成天气数据一个就读取天气数据一个的效果,首先判断flag是否数据生成,如果没有生成,则进行将随机产生的温度和湿度进行设置后输出对象的内容。数据生产完毕,有数据了,就需要进行读取数据了,所以将flag设置为true。最后将线程唤醒。如果有数据生成,则进入等待状态。
(4)编写读取天气数据的方法read()
首先判断flag是否数据读取,如果没有读取,则进行读取温度和湿度数据,读取完毕后,将flag设为true,唤醒生成数据的线程。如果没有数据进行读取,则进入等待状态。
(5)重写toString()方法,返回当前对象的属性值进行拼接输出就可以了。
同学可以参考如下同学的代码进行修改: http://class.imooc.com/course/qadetail/173848
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星