經過枚舉定義每一個枚舉類型的值

枚舉類型主要提供一些常數java

public enum Action
    {
        TURN_LEFT,
        TURN_RIGHT,
        SHOOT
    }

public class EnumDemo
    {
        public static void main(String[] args)
        {
            doAction(Action.TURN_RIGHT);
        }

        public static void doAction(Action action)
        {
            switch(action)
            {
                case TURN_LEFT:
                    System.out.println("向左轉");
                    break;
                case TURN_RIGHT:
                    System.out.println("向右轉");
                    break;
                case SHOOT:
                    System.out.println("射擊");
                    break;
            }
        }
    }

經過枚舉構造函數和覆蓋toString方法來實現定義每一個枚舉類型的值ide

package com.enumDemo;

/**
 * 經過枚舉構造函數和覆蓋toString方法來實現定義每一個枚舉類型的值
 *
 * @author Leizhi 2016/5/21
 * @see
 * @since 1.0
 */
public enum Light
{
    // 利用構造函數傳參
    RED(1), GREEN(3), YELLOW(2);

    private int code;

    // 構造函數,枚舉類型只能爲私有
    Light(int code)
    {
        this.code = code;
    }

    @Override
    public String toString()
    {
        return String.valueOf(this.code);
    }

    public static void main(String[] args)
    {
        /**
         * 經過枚舉靜態方法values遍歷枚舉
         */
        System.out.println("---------遍歷操做-------------");
        for (Light light : Light.values())
        {
            System.out.println("當前燈:" + light);
            System.out.println("當前燈name:" + light.name());
        }

        /**
         * switch操做
         * JDK1.6以前的switch語句只支持int,char,enum類型,使用枚舉,能讓咱們的代碼可讀性更強。
         */
        System.out.println("---------switch操做-------------");
        Light color = Light.RED;
        switch (color)
        {
            case RED:
                System.out.println("紅燈停");
                break;
            case YELLOW:
                System.out.println("黃燈警戒");
                break;
            case GREEN:
                System.out.println("路燈行");
                break;
        }
    }

}
相關文章
相關標籤/搜索