前言:
一直以来,我都忽视java 中枚举的使用,今天学习了下,感觉大有收获,今天就来谈一谈Java枚举的用法
基本使用:
首先先看演示,随后会有讲解。我们先要定义一个枚举类Season
public enum Season {
SPRING("spring"),
SUMMER("summer");
private final String value;
Season(String value) {
this.value = value;
}
}
然后我们打印SPRING,SUMMER
public class Test {
public static void main(String[] args) {
System.out.println( Season.SPRING);
System.out.println( Season.SUMMER);
}
}
解释 :
//Season 就是枚举类的名字,可以等同于public class Season
public enum Season {
SPRING("spring"),//等同于public static final Season SPRING = new Season("spring")
SUMMER("summer");//等同于public static final Season SUMMER = new Season("summer")
private final String value;
Season(String value) {
this.value = value;
}
}
于是上面的代码可以等价转换成下面的写法:
public class Season{
public static final Season SPRING = new Season("spring")
public static final Season SUMMER = new Season("summer")
private final String value;
Season(String value) {
this.value = value;
}
}
这里枚举类使用了一种类似于静态工厂类的设计模式,比方说当我们调用SPRING("spring")时实际上就是创建了一个Season 对象 , 这个对象包含一个名为value 的字符串属性,属性值就是spring
为什么这里的value 要添加final 关键字呢, 因为我们希望这里的属性值一旦初始化以后就不能更改。