什么是枚举?

什么是枚举?

枚举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);  
}

枚举的主要作用
在方法的参数列表中定义参数类型为枚举类,那么在传参时,参数值只能从枚举类的枚举项中选择,不会出现乱写现象。

你可能感兴趣的:(java,枚举类)