简单枚举定义
public enum EnumTest{ MON,TUE,WED,THU,FRI,SAT,SUN }
创建枚举类型要用enum关键字,尽管语法结构与class的不一样,但是经过编译器编译之后产生的也是一个class文件,该class文件反编译可以看到实际上生成一个类,该类继承java.lang.Enum<E>。枚举值(MON。。)就是在EnumTest内部生成类型为EnumTest的常量对象。所以实际上enum就是一个构造函数为private的class。
public class com.hmw.test.EnumTest extends java.lang.Enum{ public static final com.hmw.test.EnumTest MON; public static final com.hmw.test.EnumTest TUE; public static final com.hmw.test.EnumTest WED; public static final com.hmw.test.EnumTest THU; public static final com.hmw.test.EnumTest FRI; public static final com.hmw.test.EnumTest SAT; public static final com.hmw.test.EnumTest SUN; static {}; public int getValue(); public boolean isRest(); public static com.hmw.test.EnumTest[] values(); public static com.hmw.test.EnumTest valueOf(java.lang.String); com.hmw.test.EnumTest(java.lang.String, int, int, com.hmw.test.EnumTest); }
遍历、switch等常用操作
for(EnumTest e : EnumTest.values()){ System.out.println(e.toString()); } EnumTest test = EnumTest.TUE; switch(test){ case MON: Syso("monday"); break; case TUE: ...... default: ... break; }
enum对象有继承自Enum的常用方法,当然也可以自定义方法和属性