【Enum】枚举的使用

1.定义  :使用关键字  enum   ,

                 各个字段用 “,”(逗号)分隔,最后的字段后面用 “;”(分号)结尾,

                构造函数要私有化 ,保证不能创建枚举,

                属性最好使用 final 修饰 ,保证不能被 set 修改 。

               


i.e 

package com.ycit.enums;

import com.ycit.Exceptions.MyException;

/**
 * Created by xlch on 2016/6/15.
 */
public enum Color {
    RED("红色",0),
    BLUE("蓝色",1),
    GREEN("黄色",2),
    BLACK("黑色",3)
    ;

    public static String getNameByIndex(Integer index){
        for (Color color:Color.values()){
            if (color.index==index){
                return color.getName();
            }
        }
        throw new RuntimeException(index + " 不代表任务颜色");
    }

    public static Integer getIndexByName(String name)throws MyException{
        for (Color color:Color.values()){
            if (color.name.equals(name)){
                return color.getIndex();
            }
        }
        throw new RuntimeException(name+"不在定义范围内");
    }

    public static Color valueOf(int index){
        for (Color color:Color.values()){
            if (color.index==index){
                return color;
            }
        }
        throw new RuntimeException(index+"不代表任务颜色");
    }

    private final String name;
    private final int index;

    Color(String name, int index) {
        this.name = name;
        this.index = index;
    }

    public String getName() {
        return name;
    }

    public int getIndex() {
        return index;
    }

    public static void main(String [] args){
        System.out.println(getNameByIndex(2));
        System.out.println(valueOf(2));
        System.out.println(valueOf("GREEN"));
        System.out.println(getIndexByName("红色"));
    }

}

2. 枚举类可以使用的相关方法  (以以上枚举为例)


        Color [] colors = Color.values();   //以数组形式返回所有的枚举
        Color color1 = Color.valueOf("GREEN");
        Color color2 = Color.GREEN;   // color1 .equals(color2)  为 true
        String black = Color.BLACK.getName();
        Integer index = Color.BLUE.getIndex();
        Integer number = Color.BLACK.ordinal();  //第几个枚举值,从0 开始  返回 3










参看这里:http://www.codeceo.com/article/java-enum-usage.html

参看这里:http://www.cnblogs.com/frankliiu-java/archive/2010/12/07/1898721.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值