老师我的代码如下,有一些学习上的小问题需要您解答

来源:5-3 自由编程

赵林0225

2021-08-05 10:00:08

相关代码:Weather类:

package com.lin.weather;

import java.util.Random;

public class Weather {
//温度与湿度

private int temperature;//温度
private int humidity;//湿度
boolean flag;//判断是否生成还是读取

//无参构造方法添加
public Weather() {

}
//全参构造添加
public Weather(int temperature,int humidity) {
this.temperature=temperature;
this.humidity=humidity;
}

//get\set方法
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 boolean isFlag() {
return flag;
}
public void setFlag(boolean flag) {
this.flag = flag;
}



@Override
public String toString() {
return "[温度:" + temperature + ", 湿度:" + humidity + "]";
}
//生成天气数据的方法
public synchronized void generate() {
if(flag) {
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Random r=new Random();
temperature=r.nextInt(41);
humidity=r.nextInt(101);
System.out.println("生成天气数据:"+"[温度:" + temperature + ", 湿度:" + humidity + "]");
flag=true;
notifyAll();
}

public synchronized void read() {
if(!flag) {
try {
wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("读取天气数据:"+"[温度:" + temperature + ", 湿度:" + humidity + "]");
flag=false;
notifyAll();
}




}

相关代码:GenerateWeather类:

package com.lin.weather;

public class GenerateWeather implements Runnable{
Weather weather;

public GenerateWeather(Weather weather) {
this.weather=weather;
}

@Override
public void run() {
for(int i=1;i<=100;i++) {
weather.generate();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}


}

相关代码:ReadWeather类

package com.lin.weather;

public class ReadWeather implements Runnable{
Weather weather;

public ReadWeather(Weather weather) {
this.weather=weather;
}

@Override
public void run() {
for(int i=1;i<=100;i++) {
weather.read();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}


}


相关代码:测试类:

package com.lin.weather;

public class WeatherTest {

public static void main(String[] args) {
Weather weather=new Weather();
new Thread(new GenerateWeather(weather)).start();
new Thread(new ReadWeather(weather)).start();

}

}

问题描述:

1.老师我是跟随着视频课中老师的流程一步一步走下来进行代码编写的,对于每个小的地方都能够做到理解,但是看到一个需求,怎么去构思,需要几个类,每个类的作用是什么,要用什么样的方式把他们结合起来,这个感觉很难,请问这是正常的吗,以上代码如果我不看我们自由编程的需求分析的话,我认为自己是不能独立完成的,这一点给我很大打击,您能给我一些建议吗

写回答

1回答

好帮手慕小尤

2021-08-05

同学你好,1、已完成练习,棒棒哒!继续加油!

2、初学阶段程序编写没有思路是正常的,同学可以多多练习模仿编写,循序渐进,熟能生巧,慢慢就会找到编程思路啦。在学习时候,同学也可以先看一遍课程内容,或者先看一遍题目,然后尝试自己开始书写代码,在代码书写过程中,再将课程内容或题目内容代入再来理解,这样就会容易理解一些。

祝学习愉快!

0

0 学习 · 9886 问题

查看课程