枚举(JDK1.5):
为什么要有枚举:在定义一个星期的星期几、一个人的性别的时候为了避免在编写源程序的时候出现星期八,性别Female/Mele等非法变量值的出现
用普通类实现枚举功能:1、私有的构造方法 2、定义公有静态常量作为元素 3可以提供若干公有方法或抽象方法
普通类实现枚举功能代码实例:
public class Sex{ private Sex(){}; public static Sex MAN = new Sex(); public static Sex WOMAN = new Sex(); public String toString(){ return this == MAN ? "MAN" : "WOMAN"; } } //如果其中包含有抽象方法就将每个静态常量分别定义为一个个匿名内部类来实现
简单的枚举类:
public enum Sex{ MAN, WOMAN }
toString()、name()、ordinal()等 静态:valueOf()、values()等
public enum WeekDay{ //必须将枚举的元素放在前面 SUN(1), MON(), TUE,....; //运行哪一个构造方法由元素所带的参数决定 private WeekDay(){ System.out.println("first"); } private WeekDay(int x){ System.out.println("second"); } }
public enum TrafficLamp{ RED(30){ public TrafficLamp nexLamp() { return GREEN; } }, GREEN(45){ public TrafficLamp nexLamp(){ return YELLOW; } }, YELLOW(5){ public TrafficLamp nexLamp(){ return RED; } }, public abstract TrafficLamp nexLamp(); private int time; private TrafficLamp(int time){ this.time = time; } }
原文:http://blog.csdn.net/u013610441/article/details/21125361