枚举类

第一种写法(推荐)

public enum SeasonEnum {

     /**
      * 枚举对象必须放在枚举类的行首
      */
    SPRING("春天"),
    SUMMER("夏天"),
    AUTUMN("秋天"),
    WINTER("冬天");

    private String name;

    /**
     * 将构造器私有化,为了防止直接 new
     */
    private SeasonEnum(String name) {
        this.name = name;
    }

    /**
     * 去掉 setXxx 方法, 防止属性被修改,只保留getXxx方法,用于读取
     */
    public String getName() {
        return name;
    }

    /**
     * 重写toString()方法,用于输出
     */
    @Override
    public String toString() {
        return "SeasonEnum{" +
                "name='" + name + '\'' +
                '}';
    }
}

 

此处注意两个地方:

 

第二种写法

public class SeasonEnum {

    public static final SeasonEnum SPRING = new SeasonEnum("春天");
    public static final SeasonEnum SUMMER = new SeasonEnum("夏天");
    public static final SeasonEnum AUTUMN = new SeasonEnum("秋天");
    public static final SeasonEnum WINTER = new SeasonEnum("冬天");

    private String name;

    /**
     * 将构造器私有化,为了防止直接 new
     */
    private SeasonEnum(String name) {
        this.name = name;
    }

    /**
     * 去掉 setXxx 方法, 防止属性被修改,只保留getXxx方法,用于读取
     */
    public String getName() {
        return name;
    }

    /**
     * 重写toString()方法,用于输出
     */
    @Override
    public String toString() {
        return "SeasonEnum{" +
                "name='" + name + '\'' +
                '}';
    }
}

 

此处注意两个地方:

 

总结

在关键字class作用下的 public static final Season SPRING = new Season("春天");

等价于

在关键字enum作用下的 SPRING("春天")


注:
  1、如果使用无参构造器创建枚举对象,则实参列表和小括号都可以省略。
  2、当有多个枚举对象时,使用 “,” 间隔,最后有一个分号结尾。
  3、枚举对象必须放在枚举类的行首。

 

posted @ 2023-02-02 10:29  先娶国王后取经  阅读(1920)  评论(0)    收藏  举报