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

/**
* 智能灯泡类
* 实现了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;
}
}