java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE, JavaME, JavaSE)的总称。本站提供基于Java框架struts,spring,hibernate等的桌面应用、web交互及移动终端的开发技巧与资料

保持永久学习的心态,将成就一个优秀的你,来 继续搞起java知识。

在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的。

例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集”。

在java中如何更好的使用这些“数据集”呢?因此枚举便派上了用场,以下代码详细介绍了枚举的用法。

package com.ljq.test;

/**
 * 枚举用法详解
 * 
 * @author jiqinlin
 * 
 */
public class Test<a href="http://www.cfei.net/archives/tag/enum" title="浏览关于“Enum”的文章" target="_blank" class="tag_link">Enum</a> {
    /**
     * 普通枚举
     * 
     * @author jiqinlin
     *
     */
    public enum ColorEnum {
        red, green, yellow, blue;
    }
    
    /**
     * 枚举像普通的类一样可以添加属性和方法,可以为它添加静态和非静态的属性或方法
     * 
     * @author jiqinlin
     *
     */
    public enum SeasonEnum {
        //注:枚举写在最前面,否则编译出错
        spring, summer, autumn, w<a href="http://www.cfei.net/archives/tag/int" title="浏览关于“int”的文章" target="_blank" class="tag_link">int</a>er;

        private final static String position = &quot;test&quot;;

        public static SeasonEnum getSeason() {
            if (&quot;test&quot;.equals(position))
                return spring;
            else
                return winter;
        }
    }
    
    /**
     * 性别
     * 
     * 实现带有构造器的枚举
     * 
     * @author jiqinlin
     *
     */
    public enum Gender{
        //通过括号赋&amp;#20540;,而且必须带有一个参构造器和一个属性跟方法,否则编译出错
        //赋&amp;#20540;必须都赋&amp;#20540;或都不赋&amp;#20540;,不能一部分赋&amp;#20540;一部分不赋&amp;#20540;;如果不赋&amp;#20540;则不能写构造器,赋&amp;#20540;编译也出错
        MAN(&quot;MAN&quot;), WOMEN(&quot;WOMEN&quot;);
        
        private final String value;

        //构造器默认也只能是private, 从而保证构造函数只能在内部使用
        Gender(String value) {
            this.value = value;
        }
        
        public String getValue() {
            return value;
        }
    }
    
   /**
    * 订单状态
    * 
    * 实现带有抽象方法的枚举
    * 
    * @author jiqinlin
    *
    */
    public enum OrderState {
        /** 已取消 */
        CANCEL {public String getName(){return &quot;已取消&quot;;}},
        /** 待审核 */
        WAITCONFIRM {public String getName(){return &quot;待审核&quot;;}},
        /** 等待付款 */
        WAITPAYMENT {public String getName(){return &quot;等待付款&quot;;}},
        /** 正在配货 */
        ADMEASUREPRODUCT {public String getName(){return &quot;正在配货&quot;;}},
        /** 等待发货 */
        WAITDELIVER {public String getName(){return &quot;等待发货&quot;;}},
        /** 已发货 */
        DELIVERED {public String getName(){return &quot;已发货&quot;;}},
        /** 已收货 */
        RECEIVED {public String getName(){return &quot;已收货&quot;;}};
        
        public abstract String getName();
    }
    
    public static void main(String[] args) {
        //枚举是一种类型,用于定义变量,以限制变量的赋&amp;#20540;;赋&amp;#20540;时通过“枚举名.&amp;#20540;”取得枚举中的&amp;#20540;
        ColorEnum colorEnum = ColorEnum.blue;
        switch (colorEnum) {
        case red:
            System.out.println(&quot;color is red&quot;);
            break;
        case green:
            System.out.println(&quot;color is green&quot;);
            break;
        case yellow:
            System.out.println(&quot;color is yellow&quot;);
            break;
        case blue:
            System.out.println(&quot;color is blue&quot;);
            break;
        }
        
        //遍历枚举
        System.out.println(&quot;遍历ColorEnum枚举中的&amp;#20540;&quot;);
        for(ColorEnum color : ColorEnum.values()){
            System.out.println(color);
        }
        
        //获取枚举的个数
        System.out.println(&quot;ColorEnum枚举中的&amp;#20540;有&quot;&amp;#43;ColorEnum.values().length&amp;#43;&quot;个&quot;);
        
        //获取枚举的索引位置,默认从0开始
        System.out.println(ColorEnum.red.ordinal());//0
        System.out.println(ColorEnum.green.ordinal());//1
        System.out.println(ColorEnum.yellow.ordinal());//2
        System.out.println(ColorEnum.blue.ordinal());//3
        
        //枚举默认实现了java.lang.Comparable接口
        System.out.println(ColorEnum.red.compareTo(ColorEnum.green));//-1
        
        //--------------------------
        System.out.println(&quot;===========&quot;);
        System.err.println(&quot;季节为&quot; &amp;#43; SeasonEnum.getSeason());
        
        
        //--------------
        System.out.println(&quot;===========&quot;);
        for(Gender gender : Gender.values()){
            System.out.println(gender.value);
        }
       
        //--------------
        System.out.println(&quot;===========&quot;);
        for(OrderState order : OrderState.values()){
            System.out.println(order.getName());
        }
    }
    
}

javaenum枚举int

因为水平有限,难免有疏忽或者不准确的地方,希望大家能够直接指出来,我会及时改正。一切为了知识的分享。

后续会有更多的精彩的内容分享给大家。