You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.3 KiB
82 lines
2.3 KiB
/**
|
|
* 智能空调类
|
|
* 实现了Device和TemperatureAdjustable接口
|
|
*/
|
|
public class SmartAirConditioner implements Device, TemperatureAdjustable {
|
|
private String name;
|
|
private boolean on;
|
|
private int temperature;
|
|
private final int minTemp = 16;
|
|
private final int maxTemp = 30;
|
|
|
|
public SmartAirConditioner(String name) {
|
|
this.name = name;
|
|
this.on = false;
|
|
this.temperature = 25; // 默认温度25度
|
|
}
|
|
|
|
@Override
|
|
public String getName() {
|
|
return name;
|
|
}
|
|
|
|
@Override
|
|
public void turnOn() {
|
|
if (!on) {
|
|
on = true;
|
|
System.out.println(name + " 空调已开启,当前温度: " + temperature + "°C");
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void turnOff() {
|
|
if (on) {
|
|
on = false;
|
|
System.out.println(name + " 空调已关闭");
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public boolean isOn() {
|
|
return on;
|
|
}
|
|
|
|
@Override
|
|
public void increaseTemperature(int degree) {
|
|
if (on && temperature + degree <= maxTemp) {
|
|
temperature += degree;
|
|
System.out.println(name + " 温度已增加到: " + temperature + "°C");
|
|
} else if (temperature + degree > maxTemp) {
|
|
System.out.println(name + " 已达到最高温度: " + maxTemp + "°C");
|
|
temperature = maxTemp;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void decreaseTemperature(int degree) {
|
|
if (on && temperature - degree >= minTemp) {
|
|
temperature -= degree;
|
|
System.out.println(name + " 温度已降低到: " + temperature + "°C");
|
|
} else if (temperature - degree < minTemp) {
|
|
System.out.println(name + " 已达到最低温度: " + minTemp + "°C");
|
|
temperature = minTemp;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void setTemperature(int temperature) {
|
|
if (on) {
|
|
if (temperature >= minTemp && temperature <= maxTemp) {
|
|
this.temperature = temperature;
|
|
System.out.println(name + " 温度已设置为: " + temperature + "°C");
|
|
} else {
|
|
System.out.println(name + " 温度超出范围,请设置在 " + minTemp + "-" + maxTemp + "°C 之间");
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public int getCurrentTemperature() {
|
|
return temperature;
|
|
}
|
|
} |