Enum一般用来表示一组相同类型的常量。如性别、日期、月份、颜色等。对这些属性用常量的好处是显而易见的,不仅可以保证单例,且比较时候可以用”==”来替换equals。是一种好的习惯。例如: 性别: public enum SexEnum { MALE,FEMALE; } 本质上 male=0,female=1;但是用这种方式表达比直接用0,1,2,3要形象和富有意义。 这段代码实际上调用了2次 Enum(String name, int ordinal): new Enum<EnumTest>("MALE",0); new Enum<EnumTest>("FEMALE",1);
上面的是一个最简单的最具有代表的枚举。 public enum Gender{ //通过括号赋值,而且必须带有一个参构造器和一个属性跟方法,否则编译出错 //赋值必须都赋值或都不赋值,不能一部分赋值一部分不赋值;根据括号中的参数调用响应的构造函数 MALE("MAN"), FEMALE("WOMEN"); private final String value;
//构造器默认也只能是private, 从而保证构造函数只能在内部使用 private Gender(String value) { this.value = value; } public String getValue() { return value; } }
public enum OrderState { /** 已取消 */ CANCEL {public String getName(){return "已取消";}}, /** 待审核 */ WAITCONFIRM {public String getName(){return "待审核";}}, /** 等待付款 */ WAITPAYMENT {public String getName(){return "等待付款";}}, /** 正在配货 */ ADMEASUREPRODUCT {public String getName(){return "正在配货";}}, /** 等待发货 */ WAITDELIVER {public String getName(){return "等待发货";}}, /** 已发货 */ DELIVERED {public String getName(){return "已发货";}}, /** 已收货 */ RECEIVED {public String getName(){return "已收货";}}; public abstract String getName(); }
查考: http://www.cnblogs.com/hyl8218/p/5088267.html