enum枚举

简单枚举定义

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的常用方法,当然也可以自定义方法和属性

猜你喜欢

转载自xiaoxiaoher.iteye.com/blog/2354607