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.
sjiu/HomeSecuritySystem.java

85 lines
2.0 KiB

/**
* 家庭安全系统类
* 实现了Lockable、Monitored和Alarmable三个接口
*/
public class HomeSecuritySystem implements Lockable, Monitored, Alarmable {
private String name;
private boolean locked;
private boolean monitoring;
private boolean alarmTriggered;
public HomeSecuritySystem(String name) {
this.name = name;
this.locked = false;
this.monitoring = false;
this.alarmTriggered = false;
}
@Override
public void lock() {
locked = true;
System.out.println(name + " 安全系统已锁定");
}
@Override
public void unlock() {
locked = false;
System.out.println(name + " 安全系统已解锁");
}
@Override
public boolean isLocked() {
return locked;
}
@Override
public void startMonitoring() {
if (!monitoring) {
monitoring = true;
System.out.println(name + " 安全系统开始监控");
}
}
@Override
public void stopMonitoring() {
if (monitoring) {
monitoring = false;
System.out.println(name + " 安全系统停止监控");
}
}
@Override
public String getMonitoringStatus() {
return name + " 安全系统状态: " + (monitoring ? "监控中" : "未监控");
}
@Override
public void triggerAlarm() {
if (!alarmTriggered) {
alarmTriggered = true;
System.out.println(name + " 安全系统警报已触发!");
}
}
@Override
public void silenceAlarm() {
if (alarmTriggered) {
alarmTriggered = false;
System.out.println(name + " 安全系统警报已解除");
}
}
@Override
public boolean isAlarmTriggered() {
return alarmTriggered;
}
/**
* 激活完整的安全模式
*/
public void activateFullSecurity() {
lock();
startMonitoring();
System.out.println(name + " 完整安全模式已激活");
}
}