枚举类的使用场景:
- 枚举类的对象是有限个时。特别的,当枚举只有一个对象时,可以作为单例模式的一种实现方式。
枚举类的使用:
- JDK 5之前通过自定义类实现枚举。
- JDK 5之后可以通过enum关键字实现。
代码实现:
package cn.aura.java;
/**
* @author panghu
* @description JDK 5.0之前自定义枚举类
* @create 2021-01-12-17:13
*/
public class EnumTest {
public static void main(String[] args) {
Season spring = Season.SPRING;
System.out.println(spring);
}
}
//自定义枚举类
class Season {
// 1.定义枚举类常量
private final String SEASON;
// 2.私有化构造器
private Season(String season) {
this.SEASON = season;
}
// 3.创建静态对象常量供外部调用
public static final Season SPRING = new Season("春天");
public static final Season SUMMER = new Season("夏天");
public static final Season AUTUMN = new Season("秋天");
public static final Season WINTER = new Season("冬天");
public String getSEASON() {
return SEASON;
}
@Override
public String toString() {
return this.SEASON;
}
}
package cn.aura.java;
/**
* @author panghu
* @description 使用enum 关键字定义枚举类
* @create 2021-01-12-17:54
*/
public class EnumTest1 {
public static void main(String[] args) {
Season1 summer = Season1.SUMMER;
System.out.println(summer); // 打印的是定义的常量名
}
}
enum Season1 {
// 1. 首先声明枚举类中的对象
SPRING("春天"),
SUMMER("夏天"),
AUTUMN("秋天"),
WINTER("冬天");
// 2.定义私有化常量
private final String NAME;
// 3.私有化构造器
private Season1(String NAME) {
this.NAME = NAME;
}
// 4.其他扩展方法
public String getNAME() {
return NAME;
}
// toString方法可以不写,因为父类Enum中已经重写了
}