一個enum就像其他的類一樣央碟,可以擁有一系列的實例。
下面我們會舉幾個簡單的例子說明如何使用Java中的enum溃睹。
實例1
package Enum;
public class Test {
public static void main(String[] args) {
for(Color color : Color.values())
System.out.println(color.toString());
}
}
enum Color {
RED, YELLOW, BLUE; //each is a instance of color
}
Paste_Image.png
實例2(帶構(gòu)造函數(shù))
package Enum;
public class Test {
public static void main(String[] args) {
for(Color color : Color.values())
color.printColor();
}
}
enum Color {
RED(1), YELLOW(2), BLUE(3); //each is a instance of color
private int value;
private Color() {}
private Color(int value) {
this.value = value;
}
//define instance method
public void printColor() {
System.out.println(this.value);
}
}
什么時候使用Enum
我們知道Java中的enum的定義是像其他類一樣蒿偎,只是多了一系列預(yù)定義的實例。
一個適合的使用場景是:防止不可用參數(shù)的烁,例如下面這個例子:
public void doSomethingWithColor(int color);
我們在使用函數(shù)的時候發(fā)現(xiàn)這個參數(shù)是很模糊的,我們不知道不同的顏色對應(yīng)什么int值诈闺,所以傳錯參數(shù)渴庆,但我們?nèi)绻褂胑num,就可以使其變得簡單易讀:
public void doSomethingWithColor(Color color);
根據(jù)我們上面定義的enum color雅镊,我們就可以正確的傳入?yún)?shù)襟雷,而且可讀性也加強了!