/** * 安全摄像头类 * 实现了Monitored和Alarmable接口,具有监控和报警功能 */ public class SecurityCamera implements Monitored, Alarmable { private String name; private boolean isMonitoring; private int alarmSensitivity; private boolean isAlarmTriggered; /** * 构造函数 * @param name 摄像头名称 */ public SecurityCamera(String name) { this.name = name; this.isMonitoring = false; this.alarmSensitivity = 5; // 默认灵敏度为5 this.isAlarmTriggered = false; } @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 ? "正在监控" : "未监控"); } @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; } }