/*
* 1、 定义一个交通灯枚举,包含红灯、绿灯、黄灯,需要有获得下一个灯的方法,例如:红灯获取下一个灯是绿灯,
* 绿灯获取下一个灯是黄灯。
*
* 分析:
* 1)建立枚举类
* 2)在枚举类中提供抽象的nextLamp()方法
* 3)让三个灯重写抽象方法
* 4)建立验证类输出
*/
public class Test1 {
public static void main(String[] args) {
//建立交通灯对象
TrafficLamp currentLamp = TrafficLamp.GREEN;
//调用nextLamp方法获取下一个灯
TrafficLamp nextlamp = currentLamp.nextLamp();
//输出
System.out.println("当前灯为"+ currentLamp.toString());
System.out.println("下一灯为"+ nextlamp.toString());
}
}
//建立枚举
enum TrafficLamp {
RED(50) {
//重写抽象方法
public TrafficLamp nextLamp() {
return GREEN;
}
},
GREEN(30) {
//重写抽象方法
public TrafficLamp nextLamp() {
return YELLOW;
}
},
YELLOW(35) {
//重写抽象方法
public TrafficLamp nextLamp() {
return RED;
}
};
//建立抽象方法让枚举成员实现
public abstract TrafficLamp nextLamp();
private int time;
//定义含参构造方法
private TrafficLamp(int time) {
this.time = time;
}
public int function() {
return time;
}
//定义toString方法实现名字汉文显示的功能
public String toString()
{
String name=null;
switch(this)
{
case GREEN : name ="绿灯"; break;
case RED : name ="红灯"; break;
case YELLOW : name ="黄灯"; break;
}
return name;
}
}
* 1、 定义一个交通灯枚举,包含红灯、绿灯、黄灯,需要有获得下一个灯的方法,例如:红灯获取下一个灯是绿灯,
* 绿灯获取下一个灯是黄灯。
*
* 分析:
* 1)建立枚举类
* 2)在枚举类中提供抽象的nextLamp()方法
* 3)让三个灯重写抽象方法
* 4)建立验证类输出
*/
public class Test1 {
public static void main(String[] args) {
//建立交通灯对象
TrafficLamp currentLamp = TrafficLamp.GREEN;
//调用nextLamp方法获取下一个灯
TrafficLamp nextlamp = currentLamp.nextLamp();
//输出
System.out.println("当前灯为"+ currentLamp.toString());
System.out.println("下一灯为"+ nextlamp.toString());
}
}
//建立枚举
enum TrafficLamp {
RED(50) {
//重写抽象方法
public TrafficLamp nextLamp() {
return GREEN;
}
},
GREEN(30) {
//重写抽象方法
public TrafficLamp nextLamp() {
return YELLOW;
}
},
YELLOW(35) {
//重写抽象方法
public TrafficLamp nextLamp() {
return RED;
}
};
//建立抽象方法让枚举成员实现
public abstract TrafficLamp nextLamp();
private int time;
//定义含参构造方法
private TrafficLamp(int time) {
this.time = time;
}
public int function() {
return time;
}
//定义toString方法实现名字汉文显示的功能
public String toString()
{
String name=null;
switch(this)
{
case GREEN : name ="绿灯"; break;
case RED : name ="红灯"; break;
case YELLOW : name ="黄灯"; break;
}
return name;
}
}