parent
77aa256dfb
commit
7c7ece0c4a
@ -0,0 +1,95 @@
|
||||
/**
|
||||
* 智能空调类
|
||||
* 实现了SmartDevice, PowerControl和TemperatureControl接口
|
||||
*/
|
||||
public class SmartAirConditioner implements SmartDevice, PowerControl, TemperatureControl {
|
||||
private String deviceId;
|
||||
private String deviceName;
|
||||
private boolean isPowerOn;
|
||||
private double temperature;
|
||||
private final double MIN_TEMP = 16.0;
|
||||
private final double MAX_TEMP = 30.0;
|
||||
|
||||
/**
|
||||
* 构造函数
|
||||
* @param deviceId 设备ID
|
||||
* @param deviceName 设备名称
|
||||
*/
|
||||
public SmartAirConditioner(String deviceId, String deviceName) {
|
||||
this.deviceId = deviceId;
|
||||
this.deviceName = deviceName;
|
||||
this.isPowerOn = false;
|
||||
this.temperature = 25.0; // 默认温度25度
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDeviceId() {
|
||||
return deviceId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDeviceName() {
|
||||
return deviceName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDeviceType() {
|
||||
return "AirConditioner";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getStatusDescription() {
|
||||
return deviceName + " (ID: " + deviceId + ") - 状态: " +
|
||||
(isPowerOn ? "开启" : "关闭") + ", 温度: " + temperature + "°C";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void turnOn() {
|
||||
if (!isPowerOn) {
|
||||
isPowerOn = true;
|
||||
System.out.println(deviceName + " 已开启");
|
||||
} else {
|
||||
System.out.println(deviceName + " 已经是开启状态");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void turnOff() {
|
||||
if (isPowerOn) {
|
||||
isPowerOn = false;
|
||||
System.out.println(deviceName + " 已关闭");
|
||||
} else {
|
||||
System.out.println(deviceName + " 已经是关闭状态");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPowerOn() {
|
||||
return isPowerOn;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTemperature(double temperature) {
|
||||
if (temperature >= MIN_TEMP && temperature <= MAX_TEMP) {
|
||||
this.temperature = temperature;
|
||||
System.out.println(deviceName + " 温度已设置为: " + temperature + "°C");
|
||||
} else {
|
||||
System.out.println(deviceName + " 温度必须在 " + MIN_TEMP + "-" + MAX_TEMP + "°C 之间");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getTemperature() {
|
||||
return temperature;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void increaseTemperature(double increment) {
|
||||
setTemperature(this.temperature + increment);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decreaseTemperature(double decrement) {
|
||||
setTemperature(this.temperature - decrement);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in new issue