Java天气预报播报
南风如意 人气:0实验代码
WeatherState.java
package lab2; public interface WeatherState { public void showState(); }
Weather.java
package lab2; public class Weather { WeatherState state; public void show() { state.showState(); } public void setState(WeatherState s) { state = s; } }
WeatherForecast.java
package lab2; public class WeatherForecast { public static void main(String args[]) { Weather weatherBeijing = new Weather(); System.out.print("\n 今天白天:"); weatherBeijing.setState(new CloudyDayState()); weatherBeijing.show(); System.out.print("\n 今天夜间:"); weatherBeijing.setState(new LightRainState()); weatherBeijing.show(); System.out.print("转:"); weatherBeijing.setState(new HeavyRainState()); weatherBeijing.show(); System.out.print("\n 明天白天:"); weatherBeijing.setState(new LightRainState()); weatherBeijing.show(); System.out.print("\n 明天夜间:"); weatherBeijing.setState(new CloudyLittleState()); weatherBeijing.show(); } }
CloudyLittleState.java
package lab2; public class CloudyLittleState implements WeatherState { public void showState() { System.out.print("少云,有时晴!"); } }
CloudyDayState.java
package lab2; public class CloudyDayState implements WeatherState{ @Override public void showState() { System.out.println("多云,为阴天!"); } }
HeavyRainState.java
package lab2; public class HeavyRainState implements WeatherState { @Override public void showState() { System.out.println("有大雨来临!"); } }
LightRainState.java
package lab2; public class LightRainState implements WeatherState { @Override public void showState() { System.out.println("小雨,几乎没有雨!"); } }
运行结果
加载全部内容