在某些情况下,有些类的对象是有限和固定的比如季节类,它只有4个对象,再比如行星类,只有8个对象。这种实例有限而且固定的类,在Java里被称为枚举类。在一个Java源文件中,最多只能定义一个public访问权限的枚举类,且该源文件也必须和该枚举类的类名相同
一. 枚举类入门
java 5新增了一个enum关键字(相当于class,interface)来定义枚举类。枚举类是一种特殊的类与普通类有些简单区别。
枚举类可以实现一个或多个接口,使用enum定义的枚举类默认继承了java.lang.Enum类,而不是继承Object类,因此枚举类不能显式继承其他父类。其中java.lang.Enum类实现了java.lang.Serializable和java.lang.Comparable两个接口。
使用enum定义,非抽象的枚举类默认会使用final修饰,因此枚举类不能派生子类
枚举类的构造器只能使用private访问控制符 ,默认使用private控制符,可省略不写
枚举类的所有实例必须在枚举类的第一行显式指出,否则这个枚举类永远都不能产生实例。列出这些实例时,系统会自动添加public static final修饰无需程序显式添加
枚举类默认提供了一个value()方法,该方法可以很方便的遍历所有的枚举值
下面定义了一个SesssionEnum枚举类
public enum SeasonEnum { SPRING,SUMMER,FALL,WINTER; }