枚舉類(enum),與class和interface關鍵字地位相同。
枚舉類是一個特殊的類,可以有自己的成員變量、方法、構造器,可以實現一個或多個接口。一個java源文件中只能有一個public的enum類。
枚舉類終究不是普通類,它與普通類有什么區別呢?
enum默認繼承的是java.lang.Enum類,而不是Object類。enum類不能顯式繼承其他父類。
使用enum定義、非抽象的枚舉類默認會使用final修飾,因此enum類不能被繼承(不能派生子類)。
枚舉類的構造器只能使用private來修飾。
枚舉類的所有實例只能在枚舉類的第一行顯式列出。系統會自動添加public static final 修飾,程序員無需顯式添加。
枚舉類提供了一個values()方法,可以很方便的遍歷enum的值。
public enum SeasonEnum {
//列出4個枚舉實例
SRING,SUMMER,FALL,WINTER; }
這個類等價於:
public static final int SEASON_SPRING=1; public static final int SEASON_SUMMER=2; public static final int SEASON_FALL=3; public static final int SEASON_WINTER=4;
遍歷SeasonEnum類的方法:
public class EnumTest
{
public void judge(SeasonEnum s)
{
switch(s)
{
case SRING:
syso(“春”);
break;
case SUMMER:
syso("夏");
break;
......
}
}
//main方法 main() { for(SeasonEnum s:SeasonEnum.values())
{
Syso(s);
}
new EnumTest().judge(SeasonEnum.SUMMER);//使用枚舉類的類名SeasonEnum調用實例
}
}