ADD file via upload

main
pfvwqyiue 6 months ago
parent 8a47f4abca
commit 8f29bd497b

@ -0,0 +1,116 @@
/**
*
* LockableMonitoredAlarmable
*/
public class SmartSafe implements Lockable, Monitored, Alarmable {
private String name;
private boolean locked;
private boolean isMonitoring;
private int alarmSensitivity;
private boolean isAlarmTriggered;
/**
*
* @param name
*/
public SmartSafe(String name) {
this.name = name;
this.locked = true; // 默认锁定状态
this.isMonitoring = true; // 默认开启监控
this.alarmSensitivity = 8; // 默认高灵敏度
this.isAlarmTriggered = false;
}
@Override
public void lock() {
if (!locked) {
locked = true;
System.out.println(name + " 已锁定");
} else {
System.out.println(name + " 已经是锁定状态");
}
}
@Override
public void unlock() {
if (locked) {
locked = false;
System.out.println(name + " 已解锁");
// 解锁时可能触发监控提醒
if (isMonitoring) {
System.out.println(name + " 监控提醒: 保险柜已被解锁");
}
} else {
System.out.println(name + " 已经是解锁状态");
}
}
@Override
public boolean isLocked() {
return locked;
}
@Override
public void startMonitoring() {
if (!isMonitoring) {
isMonitoring = true;
System.out.println(name + " 开始监控");
} else {
System.out.println(name + " 已经在监控中");
}
}
@Override
public void stopMonitoring() {
if (isMonitoring) {
isMonitoring = false;
System.out.println(name + " 停止监控");
} else {
System.out.println(name + " 已经停止监控");
}
}
@Override
public String getMonitoringStatus() {
return name + " 监控状态: " + (isMonitoring ? "正在监控" : "未监控") +
", 锁定状态: " + (locked ? "已锁定" : "未锁定");
}
@Override
public void triggerAlarm() {
if (!isAlarmTriggered) {
isAlarmTriggered = true;
System.out.println(name + " 报警已触发! 保险柜可能遭到入侵! 灵敏度级别: " + alarmSensitivity);
} else {
System.out.println(name + " 报警已经在触发状态");
}
}
@Override
public void stopAlarm() {
if (isAlarmTriggered) {
isAlarmTriggered = false;
System.out.println(name + " 报警已停止");
} else {
System.out.println(name + " 报警已经停止");
}
}
@Override
public void setAlarmSensitivity(int level) {
if (level >= 1 && level <= 10) {
this.alarmSensitivity = level;
System.out.println(name + " 报警灵敏度已设置为: " + level);
} else {
System.out.println("灵敏度必须在1-10之间");
}
}
/**
*
* @return
*/
public String getName() {
return name;
}
}
Loading…
Cancel
Save