为什么要有枚举?
现在假设有这样一个问题,要定义星期几或者性别的变量,该怎么定义?假设用1-7分别表示星期一到星期日,但有人可能写成int weekday = 0;
枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标。
下面来看一个枚举的定义:
Week.java
public enum Week {
MON,TUES,WED,THUR,FRI,SAT,SUN
}
由此看来,枚举就相当于一个类,而枚举里面的每一个元素就相当于这个类的多个实例对象。
枚举的常用方法:
.toString() 返回枚举常量的名称
.name() 返回此枚举常量的名称,在其枚举声明中对其进行声明
.ordinal() 返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)
.getDeclaringClass() 返回与此枚举常量的枚举类型相对应的 Class 对象
.valueOf(Class<T> enumType, String name) 返回带指定名称的指定枚举类型的枚举常量