Java基础学习(二十)
Java基础学习(二十):枚举
本文为个人学习记录,内容学习自 韩顺平Java
概念
- 枚举:enumeration,简写为 enum
- 枚举是一组常量的集合
枚举的实现
-
枚举有两种实现方式:自定义类实现枚举、使用 enum 关键字实现枚举
-
自定义类实现枚举
-
步骤:
- 新建 Javabean 文件
- 将构造器私有化:防止直接创建类的实例
- 不需要 setXxx() 方法:防止枚举对象的属性被修改
- 在类内直接创建固定的对象,即枚举对象
- (可选)使用 final 修饰符修饰创建的枚举对象
- 调用枚举对象时直接:枚举类.枚举对象
-
示例:自定义 Season 类,定义四个季节常量
public class Season { // 枚举对象的属性 private String name; private String desc; // 枚举对象:SPRING、SUMMER、AUTUMN、WINTER 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("冬天", "寒冷"); private Season(String name, String desc) { this.name = name; this.desc = desc; } public String getName() { return name; } public String getDesc() { return desc; } }
-
-
使用 enum 关键字实现枚举
-
步骤:
-
使用关键字 enum 替代 class
-
public static final Season SPRING = new Season("春天", "温暖"); <==> SPRING("春天", "温暖");
-
如果有多个枚举对象,需要使用逗号间隔,最后一个使用分号结尾
-
定义枚举对象的语句必须放在最前面
-
调用枚举对象时直接:枚举类.枚举对象
-
-
示例:
enum Season { // 枚举对象:SPRING、SUMMER、AUTUMN、WINTER SPRING("春天", "温暖"), SUMMER("夏天", "炎热"), AUTUMN("秋天", "凉爽"), WINTER("冬天", "寒冷"); private String name; private String desc; private Season(String name, String desc) { this.name = name; this.desc = desc; } public String getName() { return name; } public String getDesc() { return desc; } }
-
注意事项:
-
使用 enum 定义一个枚举类时,默认继承自 Enum 类,因此不能再继承其他类了
-
使用 enum 定义的枚举类仍然是一个类,可以实现接口
-
如果枚举常量是通过无参构造器创建的,那么小括号可以省略,例如:
SPRING(); <==> SPRING;
-
-
Enum 类
-
路径:
java.lang.Enum
-
常用方法:
class Test { public static void main(String[] args) { Season autumn = Season.AUTUMN; // name():返回该枚举对象的名字 String name = autumn.name(); // ordinal():返回该枚举对象的次序/编号,从0开始 int index = autumn.ordinal(); // values():返回所有的枚举对象 Season[] values = Season.values(); // valueOf():根据字符串获取枚举对象 Season autumn1 = Season.valueOf("AUTUMN"); // compareTo():对两个枚举对象的编号进行比较,返回值为二者编号的差值 int result = autumn.compareTo(Season.SUMMER); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架