3月17枚举

java 复制代码
package com.fangfa.day05.Enum;

public class EnurmerDemo1 {
    public static void main(String[] args) {
        //为什么其他类里可以类名.对象名   因为这个对象名被static修饰了
        //若不修饰不行
        System.out.println(Season.SPRING);

    }
}
class Season{
    /**
     * @Description
     * @author Mao Reed
     * @version 1.17.0
     * @date 2026/3/27 15:28
     * 之所以能在 Season 内部调用 new Season(...),
     * 是因为构造器被 private 修饰,只能在 Season 类的内部访问。
     * 这种写法是手动实现枚举效果的一种常见方式:通过私有构造器和预定义的静态常量来限制对象个数。
     *
     *
     * 构造器是 private 的,因此只能在 Season 类的内部调用 new Season(...),外部无法直接实例化。
     *
     * 类内部通过 public static 常量提前创建好有限的几个对象(例如 SPRING、SUMMER 等),
     * 外部可以通过 Season.SPRING 访问。
     */
private String name ;
private String desc;
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("冬天","寒冷");
//构造器私有
    //去掉setXX方法防止属性被修改
    private Season(String name, String desc) {
        this.desc = desc;
        this.name = name;
    }

    public String getDesc() {
        return desc;
    }

    public String getName() {
        return name;
    }
//setName 是一个典型的 setter 方法(设置器),用于在对象创建之后,修改对象的某个属性值
//    public void setName(String name) {
//        this.name = name;
//    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    @Override
    public String toString() {
        return "Season{" +
                "name='" + name + '\'' +
                ", desc='" + desc + '\'' +
                '}';
    }
}
相关推荐
Komore3151 天前
java 泛型
java·开发语言·泛型
Hemy081 天前
tauri + rust 创建初始项目
开发语言·后端·rust
古城小栈1 天前
Rust 三方库 anyhow:极简错误处理实战指南
java·网络·rust
yqcoder1 天前
JavaScript 浅拷贝:只复制“第一层”的艺术
开发语言·javascript·ecmascript
逻辑驱动的ken1 天前
Java高频面试考点场景题26
java·开发语言·面试·职场和发展·求职招聘
yqcoder1 天前
JavaScript 闭包:函数背后的“背包”
开发语言·javascript·ecmascript
阿里嘎多学长1 天前
2026-05-08 GitHub 热点项目精选
开发语言·程序员·github·代码托管
星辰_mya1 天前
领域驱动设计(DDD)“老中医”治理订单
java·后端·面试·架构