请补全以下代码://说明:这是一个模拟交通信号灯的程序// [代码] { //定义表示交通信号的枚举类 TrafficSignal// GREEN(7) { // 定义枚举常量:GREEN,表示绿灯,持续时间7秒// @Override public TrafficSignal nextSignal() { // 绿灯过后是红灯// return YELLOW; } }, // 注意:这里是逗号“,” 不是分号
时间: 2023-08-17 18:05:13 浏览: 49
// 继续补全代码
YELLOW(2) { // 定义枚举常量:YELLOW,表示黄灯,持续时间2秒
@Override
public TrafficSignal nextSignal() { // 黄灯过后是红灯
return RED;
}
},
RED(5) { // 定义枚举常量:RED,表示红灯,持续时间5秒
@Override
public TrafficSignal nextSignal() { // 红灯过后是绿灯
return GREEN;
}
};
private int duration; // 表示信号灯持续的时间
private TrafficSignal(int duration) { // 构造方法
this.duration = duration;
}
public int getDuration() { // 获取信号灯持续的时间
return duration;
}
public abstract TrafficSignal nextSignal(); // 定义抽象方法,表示下一个信号灯是什么
}
// 示例使用:
TrafficSignal signal = TrafficSignal.GREEN; // 初始化信号灯为绿灯
System.out.println(signal); // 输出:GREEN
Thread.sleep(signal.getDuration() * 1000); // 等待绿灯的时间
signal = signal.nextSignal(); // 获取下一个信号灯
System.out.println(signal); // 输出:YELLOW
Thread.sleep(signal.getDuration() * 1000); // 等待黄灯的时间
signal = signal.nextSignal(); // 获取下一个信号灯
System.out.println(signal); // 输出:RED
Thread.sleep(signal.getDuration() * 1000); // 等待红灯的时间
signal = signal.nextSignal(); // 获取下一个信号灯
System.out.println(signal); // 输出:GREEN