java中的自定义枚举类
自定义枚举类有两种写法
第一种写法:
class Season { private String name; //在 Season 内部,直接创建固定的对象 , //优化,可以加入 final 修饰符 public static final Season SPRING = new Season("春天"); public static final Season WINTER = new Season("冬天"); public static final Season AUTUMN = new Season("秋天"); public static final Season SUMMER = new Season("夏天"); //将构造器私有化,为了防止直接 new private Season(String name) { this.name = name; } //去掉 setXxx 方法, 防止属性被修改,只保留getXxx方法,用于读取 public String getName() { return name; } //重写toString()方法,用于输出 @Override public String toString() { return "Season{" + "name='" + name + '}'; }
此处注意两个地方:
此处是再类内部直接生成实例对象。
第二种写法
enum Season { private String name; SPRING("春天") //将构造器私有化,为了防止直接 new private Season(String name) { this.name = name; } //去掉 setXxx 方法, 防止属性被修改,只保留getXxx方法,用于读取 public String getName() { return name; } //重写toString()方法,用于输出 @Override public String toString() { return "Season{" + "name='" + name + '}'; }
注意两个地方:
总结:
在关键字class作用下的
public static final Season SPRING = new Season("春天");
等价于在关键字enum作用下的
SPRING("春天")
注:
如果使用无参构造器创建枚举对象,则实参列表和小括号都可以省略。
当有多个枚举对象时,使用 “,” 间隔,最后有一个分号结尾。
枚举对象必须放在枚举类的行首。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通