Enum是enumeration(列舉)的簡寫形式,包含在java.lang包中.熟悉C, C++, C#, 或 Pascal人應該對列舉有所了解,先看個例子:

public enum Season ...{ winter, spring, summer, fall }
一個enum是定義一組值的對象,它可以包括零個或多個值成員.它是屬于enum類型的,一個enum對象中不可有兩個或多個相同的屬性或值.在次之前的java程序員一般是 用接口的方法實現(xiàn)列舉的,如 :

public interface Season ...{
static winter = 0;
static spring = 1; //etc..
}
引入了enum的java的列舉的編寫方便了許多,只須定義一個enum型的對象.enum對象的值都回自動獲得一個數(shù)字值,從0開始,依次遞增.看一個比較簡單的enum實現(xiàn)的例子:EnumDemo.java

/**//*
We can loop over the values we put into the enum
using the values() method.
Note that the enum Seasons is compiled into a
separate unit, called EnumDemo$Seasons.class
*/

public class EnumDemo ...{

/**//*declare the enum and add values to it. note that, like in C#, we don't use a ; to
end this statement and we use commas to separate the values */

private enum Seasons ...{ winter, spring,
summer, fall }
//list the values

public static void main(String[] args) ...{

for (Seasons s : Seasons.values())...{
System.out.println(s);
}
}
}
運行上述代碼你回得到 以下結果:
winter
spring
summer
fall
Enum的屬性調用:
下面的代碼展示了調用enum對象的方法,這也是它通常的用法:
package net.javagarage.enums;

/**//*
File: EnumSwitch.java
Purpose: show how to switch against the values in an enum.
*/

public class EnumSwitch ...{

private enum Color ...{ red, blue, green }
//list the values

public static void main(String[] args) ...{
//refer to the qualified value
doIt(Color.red);
}

/**//*note that you switch against the UNQUALIFIED name. that is, "case Color.red:" is a
compiler error */

private static void doIt(Color c)...{

switch (c) ...{
case red:

System.out.println("value is " + Color.red);
break;
case green:

System.out.println("value is " + Color.green);
break;
case blue:

System.out.println("value is : " + Color.blue);
break;
default :

System.out.println("default");
}
}
}
