什么是枚举?
枚举enum是一种特殊的类(但枚举是类),使用枚举可以很方便的定义常量
比如设计一个枚举类型 四季,里面需要定义四个常量,常量写成大写
public enum Season {
SPRING,SUMMER,AUTUMN,WINTER;
}
这样就可以用switch语句进行判断,如当前季节为Season时,即为春季,以此类推;
假在需要用到给某类的季节属性赋值时,不使用枚举,不管是定义int属性,用1-4表示四季,还是直接写中文“春季”、“夏季”、“秋季”、“冬季”表示四季,都有可能出现5或“春天”这样范围外的数值。
但是使用枚举,就能把范围规定到“SPRING,SUMMER,AUTUMN,WINTER”当中,这样就可以避免范围外的数值。
例:
// 定义一个枚举类型 季节
enum Season {
SPRING,SUMMER,AUTUMN,WINTER
}
// 定义一个月份
class Month{
private Season season;
public Season getSeason() {
return season;
}
public void setSeason(Season season) {
this.season = season;
}
public Month() {}
public Month(Season season) {
this.season = season;
}
@Override
public String toString() {
return "Month{ season = " + season + '}';
}
}
// 测试类
public class Test {
public static void main(String[] args) {
// 定义一个月份类对象
Month month = new Month();
// 给他的季节属性赋值
month.setSeason(Season.AUTUMN);
System.out.println(month); // 会打印Month{ season = AUTUMN}
}
}
枚举类中的**values()**方法可返回所有枚举常量的数组集合;
Season[] values = Season.values();
for (Season s:values) {
System.out.println(s);
}
枚举的主要作用:
在方法的参数列表中定义参数类型为枚举类,那么在传参时,参数值只能从枚举类的枚举项中选择,不会出现乱写现象。