在大部分程式語言中,枚舉類型都會是一種常用而又必不可少的資料類型,Java當然也不會例外。然而,Java中的Enum枚舉型別卻有著許多你意想不到的用法,以下讓我們一起來看看。
1、可以在enum中加入變數和方法
先來看一段程式碼範例:
public enum State { Normal("正常态", 1), Update("已更新", 2), Deleted("已删除", 3), Fired("已屏蔽", 4); // 成员变量 private String name; private int index; // 构造方法,注意:构造方法不能为public,因为enum并不可以被实例化 private State(String name, int index) { this.name = name; this.index = index; } // 普通方法 public static String getName(int index) { for (State c : State .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; } }
從上面的程式碼中我們可以看到,定義完枚舉值,然後在其後面加上分號,接著就可以定義其他的變數、方法了。另外要特別說明的是,enum中的建構方法不可以用public標識,這樣做是為了防止使用者實例化enum。
2、可以用來定義常數
先來回顧一下Java中如何定義常數吧,看下面一段程式碼:
public static final int normalState = 1; private static final int updateState = 2;
下面我們還可以用enum枚舉來取代上面的常數定義,程式碼如下:
reee在Java中用enum來定義常數在語法上沒有什麼優勢,但是enum枚舉型別可以提供更多的操作功能。
先來看下面一段程式碼:public enum State { Normal, Update, Deleted, Fired }