當前位置:才華齋>IT認證>JAVA認證>

Java列舉常見7種用法彙總

JAVA認證 閱讀(2.1W)

java DK1.5引入了新的型別——列舉。在 Java 中它雖然算個“小”功能,卻給我的開發帶來了“大”方便。

Java列舉常見7種用法彙總

  用法一:常量

在JDK1.5 之前,我們定義常量都是: publicstaticfianl…… .現在好了,有了列舉,可以把相關的.常量分組到一個列舉型別裡,而且列舉提供了比常量更多的方法。

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

  用法二:switch

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

enum Signal { GREEN, YELLOW, RED } public class TrafficLight { Signal color = ;public void change() { switch (color) { case RED:color = N;break;case YELLOW:color = ;break;case GREEN:color = OW;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) { = name;x = index;} // 普通方法public static String getName(int index) { for (Color c : es()) { if (ndex() == index) { return ;} return null;} // get set 方法public String getName() { return name;} public void setName(String name) { = name;} public int getIndex() { return index;} public void setIndex(int index) { x = index;}

  用法四:覆蓋列舉的方法

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

public enum Color { RED("紅色", 1), GREEN("綠色", 2), BLANK("白色", 3), YELLO("黃色", 4);// 成員變數private String name;private int index;// 構造方法private Color(String name, int index) { = name;x = index;} //覆蓋方法@Override public String toString() { return x+"_"+;}

  用法五:實現介面

所有的列舉都繼承自類。由於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) { = name;x = index;} //介面方法@Override public String getInfo() { return ;} //介面方法@Override public void print() { tln(x+":"+);}

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

public interface Food { enum Coffee implements Food{ BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO } enum Dessert implements Food{ FRUIT, CAKE, GELATO }

  用法七:關於列舉集合的使用

Set和Map是兩個列舉集合。EnumSet保證集合中的元素不重複;EnumMap中的 key是enum型別,而value則可以是任意型別。關於這個兩個集合的使用就不在這裡贅述,可以參考JDK文件。