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.
93 lines
2.3 KiB
93 lines
2.3 KiB
/**
|
|
* 智能灯泡类
|
|
* 实现了SmartDevice, PowerControl和LightControl接口
|
|
*/
|
|
public class SmartLightBulb implements SmartDevice, PowerControl, LightControl {
|
|
private String deviceId;
|
|
private String deviceName;
|
|
private boolean isPowerOn;
|
|
private int brightness;
|
|
private String color;
|
|
|
|
/**
|
|
* 构造函数
|
|
* @param deviceId 设备ID
|
|
* @param deviceName 设备名称
|
|
*/
|
|
public SmartLightBulb(String deviceId, String deviceName) {
|
|
this.deviceId = deviceId;
|
|
this.deviceName = deviceName;
|
|
this.isPowerOn = false;
|
|
this.brightness = 50; // 默认亮度50%
|
|
this.color = "white"; // 默认颜色白色
|
|
}
|
|
|
|
@Override
|
|
public String getDeviceId() {
|
|
return deviceId;
|
|
}
|
|
|
|
@Override
|
|
public String getDeviceName() {
|
|
return deviceName;
|
|
}
|
|
|
|
@Override
|
|
public String getDeviceType() {
|
|
return "LightBulb";
|
|
}
|
|
|
|
@Override
|
|
public String getStatusDescription() {
|
|
return deviceName + " (ID: " + deviceId + ") - 状态: " +
|
|
(isPowerOn ? "开启" : "关闭") + ", 亮度: " + brightness + "%, 颜色: " + color;
|
|
}
|
|
|
|
@Override
|
|
public void turnOn() {
|
|
isPowerOn = true;
|
|
System.out.println(deviceName + " 电源已开启");
|
|
}
|
|
|
|
@Override
|
|
public void turnOff() {
|
|
isPowerOn = false;
|
|
System.out.println(deviceName + " 电源已关闭");
|
|
}
|
|
|
|
@Override
|
|
public boolean isPowerOn() {
|
|
return isPowerOn;
|
|
}
|
|
|
|
@Override
|
|
public void turnOnLight() {
|
|
turnOn();
|
|
}
|
|
|
|
@Override
|
|
public void turnOffLight() {
|
|
turnOff();
|
|
}
|
|
|
|
@Override
|
|
public void setBrightness(int brightness) {
|
|
if (brightness >= 0 && brightness <= 100) {
|
|
this.brightness = brightness;
|
|
System.out.println(deviceName + " 亮度已设置为: " + brightness + "%");
|
|
} else {
|
|
System.out.println(deviceName + " 亮度必须在 0-100% 之间");
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void setColor(String color) {
|
|
this.color = color;
|
|
System.out.println(deviceName + " 颜色已设置为: " + color);
|
|
}
|
|
|
|
@Override
|
|
public boolean isLightOn() {
|
|
return isPowerOn;
|
|
}
|
|
} |