实现枚举类的方式

一、自定义类实现枚举

枚举类? 一是让数值看起来更直观二是圈定一个范围,是数值被限定在这个范围中。

步骤、要求 :

1、将构造器私有化,目的防止直接 new

2.去掉setXxx方法(因为枚举对象通常为只读,但可以提供get方法),防止属性被修改

3.本类内部直接创建固定的对象

4、优化:对象可以加final修饰符

eg :

java 枚举类动态初始化 java动态生成枚举_java 枚举类动态初始化

⭐️:枚举类对象名通常使用全部大写

二、enum关键字实现枚举

步骤、要求 :

1、使用关键字enum替代class

2、创建对象格式为: 常量名(实参列表)

**//public static final Season SPRING = new Season(“春天”,“温暖")**直接使用 // SPRING(“春天”,“温暖”)替代。


3、如果有多个常量(对象),使用,号间隔即可

4、如果使用enum来实现枚举,要求将定义常量对象,写在前面(语法要求)

eg:
SPRING("春天","温暖"),WINTER("冬天","寒冷"),AUTUNN("秋天"","凉爽"),SUNMER("夏天","炎热");
private String name;
private String desc;

⭐️注意事项:

1、使用enum关键字实现枚举类时,默认会继承Enum类,而且是一个final类

2、若使用的是无惨构造器创建枚举对象,则实参列表和小括号都可以省略

即有参:SPRING(“春天”,“温暖”); 无惨则可以为: SPRING(); 或 SPRING;

enum常用方法 :

java 枚举类动态初始化 java动态生成枚举_java_02

java 枚举类动态初始化 java动态生成枚举_开发语言_03

Enum使用细节:

1、使用enum关键字后,就不能再继承其它类了,因为enum会隐式继承Enum(Java是单继承机制)
2、枚举类和普通类一样,可以实现接口,如下形式:

enum 类名 implements 接口1,接口2{}

三、JDK内置的基本注解类型

常用

java 枚举类动态初始化 java动态生成枚举_开发语言_04

注解是什么?

java 枚举类动态初始化 java动态生成枚举_java_05

三个基本的注解

java 枚举类动态初始化 java动态生成枚举_枚举类_06

1、@Override

写在子类某个方法代码上面,表该方法为重写

写不写注解区别: 写时编译会检查是否真的重写,没重写会报错(编译层面验证); 不写时为普通方法,父类有该方法时也是属于重写

java 枚举类动态初始化 java动态生成枚举_开发语言_07

注解类(特殊的格式,不是接口):

java 枚举类动态初始化 java动态生成枚举_开发语言_08

@Target 为修饰注解的注解(称为元注解)

2、 @Deprecated

(表某元素已过时,但仍可使用) 作用: 作为一个版本升级过渡

java 枚举类动态初始化 java动态生成枚举_枚举类_09

3 、@SuppressWarnings

作用: 不希望看到警告信息时 大括号:想要抑制的警告信息(属性值可查看文档)

java 枚举类动态初始化 java动态生成枚举_java_10

作用域:

java 枚举类动态初始化 java动态生成枚举_元注解_11

四、元注解:对注解进行注解 (了解即可)

作用不大,看源码知道是什么即可

元注解:修饰注解的注解

java 枚举类动态初始化 java动态生成枚举_开发语言_12