一、什么是枚举
枚举,英文:Enumerationjavascript
“枚举”的字面意思:枚,是个量词,能够理解成是个。好比:一枚金牌、一枚银牌。举:就是例举的意思。枚举合起来的意思就是例举出有限的事物的集合!例如:例举一周有几天、一年有多少个月份。java
枚举的正式解释:枚举类型是jdk5中新增的特性,它是一种加了限制的特殊的class类型。这里的限制指的是对枚举类型所能建立的对象的个数进行了限制!他不像普通的class类那样能够建立无数的对象,他只能建立固定数目的对象,并且这些对象是在定义枚举类型的时候就已经在枚举类内部建立好了的!ide
二、为何要用枚举?
由于在有的时候一个类的对象是有限且固定的,因此这个时候用枚举就很方便!code
例如:一周有七天、一年有四季对象
不用枚举(JDK1.5以前)ip
public class Week{ private Week(){}//私有构造器 public static final Week SUN = new Week(); public static final Week MON = new Week(); public static final Week TUE = new Week(); public static final Week WED = new Week(); public static final Week THU = new Week(); public static final Week FRI = new Week(); public static final Week SAT = new Week(); }
使用枚举(JDK1.5以后)
public enum WeekEnum {
SUN,MON,TUE,WED,THU,FRI,SAT;
}
三、枚举的使用
枚举的定义其实和类的定义是同样的,只是关键字不同,定义枚举的关键字是==enum==it
//定义一个类 public class 类名称{ //类成员 } //定义了一个星期的枚举类 public enum WeekEnum {//class //枚举对象 SUN,MON,TUE,WED,THU,FRI,SAT;//object -->枚举常量 }
public class Week{ private Week(){}//私有构造器 public static final Week SUN = new Week(); public static final Week MON = new Week(); public static final Week TUE = new Week(); public static final Week WED = new Week(); public static final Week THU = new Week(); public static final Week FRI = new Week(); public static final Week SAT = new Week(); }
注意事项:io
(1)、枚举值都定义在枚举类中。class
(2)、枚举常量值的书写要遵循Java标识符的规范,通常都是==所有大写==。jdk
(3)、定义的枚举值和枚举值之间用“,”隔开,定义完全部的枚举值以后要加”;”。
(4)、每个枚举值都是一个常量,定义以后都不能更改!