/** * 智能空调类 * 实现了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); } }