枚举实现两种方法:自定义实现;enum关键字
1.自定义实现枚举类
-
构造器私有化
-
本类内部创建一组对象[例:春夏秋冬]
-
对外暴露对象(通过为对象添加public final static 修饰符)
解释:public 保证外部可以访问;static 保证外部不需要创建对象也可以访问; final 保证对象不被修改;
-
可以提供get方法,但是不要提供 set
2.enum关键字实现枚举
具体实现:
-
使用enum替代class
-
直接创建对象
// 用 SPRING ("春天","温暖"); // 代替 public static final Season SPRING = new Seasonn("春天","温暖")
-
如果有多个枚举对象,使用,间隔
SPRING ("春天","温暖"),SPRING ("夏","炎热"),SPRING ("秋天","凉爽"),SPRING ("冬天","寒冷");
-
如果使用enum来实现枚举,要求将定义常量对象写在前面
3.enum 关键字实现枚举注意事项
- 当我们使用 enum 关键字开发一个枚举类时,默认会继承 Enum 类, 而且是一个 final 类
- 传统的 public static final Season2 SPRING = new Season2(“春天”, “温暖”); 简化成 SPRING(“春天”, “温暖”), 这里必 须知道,它调用的是哪个构造器.
- 如果使用无参构造器 创建 枚举对象,则实参列表和小括号都可以省略
4.enum类常用的方法
- toString:Enum 类已经重写过了,返回的是当前对象名,子类可以重写该方法,用于返回对象的属性信息
- name:返回当前枚举对象名(常量名),子类中不能重写
- ordinal:返回当前对象的位置号,默认从 0 开始
- values:返回当前枚举类中所有的常量
- valueOf:将字符串转换成枚举对象,要求字符串必须 为已有的常量名,否则报异常!
- compareTo:比较两个枚举常量,比较的就是编号!
5.enum实现接口
-
使用 enum 关键字后,就不能再继承其它类了,因为 enum 会隐式继承 Enum,而 Java 是单继承机制。
-
枚举类和普通类一样,可以实现接口。
enum 类名 implements 接口 1,接口 2{}