java中的enum有什么用呢? Enum一般用来表示一组相同类型的常量。如性别、日期、月份、颜色等。对这些属性用常量的好处是显而易见的,不仅可以保证单例,且比较时候可以用”==”来替换equals。是一种好的习惯。 package enumtest; public class TestEnum { public enum ColorEnum{ red,green,yellow,blue; } /** * 枚举像普通的类一样可以添加属性和方法,可以为它添加静态和非静态的属性和方法 * @author Administrator * */ public enum SeasonEnum{ //枚举写在最前面,否则编译出错 spring,summer,autum,winter; private final static String position="test"; public static SeasonEnum getSeason(){ if("test".equals(position)){ return spring; }else{ return winter; } } } /** * 性别 * * 实现带有构造器的枚举 * @author Administrator * */ public enum Gender{ //通过括号赋值,而且必须带有一个参数构造器和一个属性跟方法,否则编译出错 //赋值必须都复制或都不赋值,不能一部分赋值,一部分不赋值。如果不赋值则不能写构造器,否则编译出错 Man("M"),Female("F"); private final String value; //构造器默认也只能是private,从而保证构造函数只能在内部使用 Gender(String value){ this.value=value; } public String getValue() { return value; } } /** * 实现带有抽象方法的枚举 * @author Administrator * */ 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(); } public static void main(String[] args) { //枚举是一种类型,用于定义变量,以限制变量的赋值。赋值时,通过“枚举名.值”取得枚举中的值 ColorEnum co=ColorEnum.blue; switch (co) { case blue: System.out.println("color is blue"); break; case green: System.out.println("color is green"); break; } //遍历枚举 System.out.println("遍历枚举"); for(ColorEnum color:ColorEnum.values()){ System.out.println(color); } //获取枚举的个数 System.out.println("获取枚举的个数"+ColorEnum.values().length); //获取枚举的索引位置,从0开始 } }