|
|
/**
|
|
|
* 安全摄像头类
|
|
|
* 实现了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;
|
|
|
}
|
|
|
} |