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中文網其他相關文章!