天气类Weather怎么写,尤其是里面的 读取天气数据 方法和 toString 方法怎么写?

天气类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);
	}
}


正在回答

登陆购买课程后可参与讨论,去登陆

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积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师