首頁  >  文章  >  Java  >  java中enum(枚舉)的用法詳解

java中enum(枚舉)的用法詳解

王林
王林轉載
2019-11-27 15:49:342738瀏覽

java中enum(枚舉)的用法詳解

Java Enum原理: 

public enum Size{ SMALL, MEDIUM, LARGE, EXTRA_LARGE };

實際上,這個宣告定義的型別是一個類,它剛好有四個實例,在此盡量不要建構新物件。

因此,在比較兩個枚舉類型的值時,永遠不需要呼叫equals方法,而直接使用"=="就可以了。 (equals()方法也是直接使用==,  兩者是一樣的效果)

相關影片教學推薦:java教學影片

用法一:常數

在JDK1.5 之前,我們定義常數都是: public static fianl.... 。現在好了,有了枚舉,可以把相關的常數分組到一個枚舉類型裡,而且枚舉提供了比常數更多的方法。

public enum Color {  
  RED, GREEN, BLANK, YELLOW  
}

用法二:switch

JDK1.6之前的switch語句只支援int,char,enum類型,使用枚舉,能讓我們的程式碼可讀性更強。

enum Signal {
        GREEN, YELLOW, RED
    }

    public class TrafficLight {
        Signal color = Signal.RED;

        public void change() {
            switch (color) {
            case RED:
                color = Signal.GREEN;
                break;
            case YELLOW:
                color = Signal.RED;
                break;
            case GREEN:
                color = Signal.YELLOW;
                break;
            }
        }
    }

用法三:在枚舉中新增方法

如果打算自訂自己的方法,那麼必須在enum實例序列的最後加上一個分號,而且Java 要求必須先定義enum 實例。

public enum Color {
    RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
    // 成员变量
    private String name;
    private int index;

    // 构造方法
    private Color(String name, int index) {
        this.name = name;
        this.index = index;
    }

    // 普通方法
    public static String getName(int index) {
        for (Color c : Color.values()) {
        if (c.getIndex() == index) {
            return c.name;
        }
        }
        return null;
    }

    // get set 方法
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getIndex() {
        return index;
    }

    public void setIndex(int index) {
        this.index = index;
    }
    }

用法四:覆寫枚舉的方法

下面給出一個toString()方法覆蓋的例子。

public class Test {
    public enum Color {
        RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
        // 成员变量
        private String name;
        private int index;

        // 构造方法
        private Color(String name, int index) {
            this.name = name;
            this.index = index;
        }

        // 覆盖方法
        @Override
        public String toString() {
            return this.index + "_" + this.name;
        }
    }

    public static void main(String[] args) {
        System.out.println(Color.RED.toString());
    }
}

用法五:實作介面

所有的枚舉都繼承自java.lang.Enum類別。由於Java 不支援多繼承,所以枚舉物件不能再繼承其他類別。

public interface Behaviour {
    void print();

    String getInfo();
    }

    public enum Color implements Behaviour {
    RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
    // 成员变量
    private String name;
    private int index;

    // 构造方法
    private Color(String name, int index) {
        this.name = name;
        this.index = index;
    }

    // 接口方法

    @Override
    public String getInfo() {
        return this.name;
    }

    // 接口方法
    @Override
    public void print() {
        System.out.println(this.index + ":" + this.name);
    }
    }

用法六:使用介面組織列舉 

public interface Food {
        enum Coffee implements Food {
            BLACK_COFFEE, DECAF_COFFEE, LATTE, CAPPUCCINO
        }

        enum Dessert implements Food {
            FRUIT, CAKE, GELATO
        }
    }

更多相關文章教學請造訪:java入門

以上是java中enum(枚舉)的用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除