作用:
编译程序时,检测枚举值是否合法。
限定值的范围。
枚举相当于一个类,里面的元素相当于是该类的实例对象,默认调用toString方法打印。
重要方法
枚举名.valueOf("值")。把字符值转换成枚举对象。
枚举名.values()转换成数组。
枚举的构造方法:
public enum Day{
Sun(1),MON;
private Day(){system.out.println("默认的构造函数");}
private Day(int i){system.out.println("调用带参数的构造函数");}
}
复杂的枚举DEMO:
class EnumTest{ public static void main(String[] args) { TrafficLamp la=TrafficLamp.RED; System.out.println(la.name()); }
public enum TrafficLamp{ RED(30){//RED元素由以下子类(内部类)实现。 public TrafficLamp nextLamp(){ return GREEN; } },GREEN(45){ public TrafficLamp nextLamp(){ return YELLOW; } },YELLOW(5){ public TrafficLamp nextLamp(){ return RED; } };
public abstract TrafficLamp nextLamp();
private int time; private TrafficLamp(int time){this.time=time;} }}