枚舉類enum是JDK1.5引入的,之前都是用public static final int enum_value來代替枚舉類的。枚舉類enum是一種特殊的類,它默認繼承了類java.lang.Enum。和其它普通類一樣,enum同樣可以有成員變量、方法、構造器,也可以實現一個或多個接口,區別是:
1.如果有構造器,必須用private修飾。
2.枚舉類不能派生子類。
3.枚舉類所有的實例必須在第一行顯示定義。系統會自動給這些實例加上public static final修飾,無須程序員顯示定義。
4.枚舉類默認提供了values()方法,方便遍歷所有的枚舉值
enum中的方法(Enum提供的方法):
public final int compareTo(E o) 比較相同類型的枚舉值
public final int ordinal() 返回枚舉的索引值,第一個枚舉值從零開始。
public final String name() 返回枚舉實例名稱
public String toString() 返回枚舉產量名稱
交通燈實例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
public enum TrafficLight { RED( "紅" ), YELLOW( "黃" ), GREEN( "綠" ); private String name; private TrafficLight(String name) { this .name = name; } public String getName() { return name; } public void jude(TrafficLight light) { switch (light) { case RED: System.out.println( "stop" ); break ; case YELLOW: System.out.println( "go" ); break ; case GREEN: System.out.println( "wait" ); break ; default : break ; } } public static void main(String[] args) { for (TrafficLight e : TrafficLight.values()) { System.out.println(e.name()); } } } |