在日常中,经常遇到一些数据,比如一年有十二月,季节有春夏秋冬四个季节等都称为可枚举数据。对于这些数据,在程序里可以定义为枚举类。枚举类也是一个包装类,其定义格式:
enum 枚举名{
枚举元素列表
}
枚举元素列表中的元素也叫做枚举变量。
引用枚举常量的格式:
枚举类型名.枚举常量名
例如Season.spring等等。
用枚举类定义的变量叫做枚举变量。例如Season season
所定义的枚举变量只能在对应类的枚举常量列表中取值。因此,采用枚举类的优点是可以限制枚举变量的取值范围
enum类是Enum类的子类,从Enum类继承了许多方法
在自定义的enum类中,每一个枚举常量可以定义一个显示的名称,一个索引值。枚举的构造方法用于内部实例化每一个枚举常量,根据需要定义一些方法,比如getName(),values()等方法,直接用枚举类型名获取所有枚举常量,通过循环来进行枚举常量遍历
注意:
1.枚举可以作为静态内部类,成员内部类,但是不能是局部内部类
2.重新定义的enum类型,每个枚举常量可以定义String的名字或者定义int的索引值,也可以两者都定义,但实例化方法的参数类型顺序要与其对应
3.如果没有重新定义枚举元素的索引值,默认为的索引值从0开始。如果重新定义含有索引值的枚举元素,按照定义的索引值进行排列
4.enum也有对应的包装类Enum,在java.lang包下
5.如果enum类型与switch语句结合,只要在case语句中给出枚举变量即可。当然在case语句中直接使用枚举常量,不需要枚举类名