自定义类实现枚举

SOBER大约 1 分钟

自定义类实现枚举

枚举的引出

要求:创建季节(Season)对象,请设计并完成 季节是只有四个固定值(春、夏、秋、冬),不能修改,所以需要使用枚举

介绍

  1. 枚举对应英文(enumeration,简写 enum)
  2. 枚举是一组常量的集合。
  3. 可以这样理解:枚举属于一种特殊的类,里面只包含一组有限的特定的对象。

实现自定义枚举

  • 实现步骤
  1. 将构造器私有化,防止直接 new
  2. 去掉 set 相关的方法 防止属性被修改
  3. 在 EnumerationSon 内部 直接创建固定的对象
  4. 固定的四个对象优化 可以加 final
  5. 对外暴露对象(通过为对象添加 public final static 修饰符)
  6. 可以提供 get 方法,但是不要提供 set
public class Enumeration01 {
    public static void main(String[] args) {
        System.out.println(EnumerationSon.SPRING);
        System.out.println(EnumerationSon.SUMMER);
        System.out.println(EnumerationSon.AUTUMN);
        System.out.println(EnumerationSon.WINTER);
    }
}
// 自定义枚举实现
class EnumerationSon {
    private String name;
    private String desc;
    public static final EnumerationSon SPRING = new EnumerationSon("春天", "好1");
    public static final EnumerationSon SUMMER = new EnumerationSon("夏天", "好2");
    public static final EnumerationSon AUTUMN = new EnumerationSon("秋天", "好3");
    public static final EnumerationSon WINTER = new EnumerationSon("冬天", "好4");
    private EnumerationSon(String name, String desc){
        this.name = name;
        this.desc = desc;
    }
    public String getDesc() {
        return desc;
    }

    // 输入 to 有提示 直接生成以下代码
    @Override
    public String toString() {
        return "EnumerationSon{" +
                "name='" + name + '\'' +
                ", desc='" + desc + '\'' +
                '}';
    }
}