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.

84 lines
2.3 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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