欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

什么是枚举?

程序员文章站 2022-09-28 22:51:24
什么是枚举?枚举enum是一种特殊的类(但枚举是类),使用枚举可以很方便的定义常量比如设计一个枚举类型 四季,里面需要定义四个常量,常量写成大写public enum Season {SPRING,SUMMER,AUTUMN,WINTER;}这样就可以用switch语句进行判断,如当前季节为Season时,即为春季,以此类推;假在需要用到给某类的季节属性赋值时,不使用枚举,不管是定义int属性,用1-4表示四季,还是直接写中文“春季”、“夏季”、“秋季”、“冬季”表示四季,都有可能出现5或“...

什么是枚举?

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

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

本文地址:https://blog.csdn.net/Li_Wendi/article/details/111876874

相关标签: java 枚举类