实现枚举类的方式
一、自定义类实现枚举
枚举类? 一是让数值看起来更直观二是圈定一个范围,是数值被限定在这个范围中。
步骤、要求 :
1、将构造器私有化,目的防止直接 new
2.去掉setXxx方法(因为枚举对象通常为只读,但可以提供get方法),防止属性被修改
3.本类内部直接创建固定的对象
4、优化:对象可以加final修饰符
eg :
⭐️:枚举类对象名通常使用全部大写
二、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常用方法 :
Enum使用细节:
1、使用enum关键字后,就不能再继承其它类了,因为enum会隐式继承Enum(Java是单继承机制)
2、枚举类和普通类一样,可以实现接口,如下形式:
enum 类名 implements 接口1,接口2{}
三、JDK内置的基本注解类型
常用
注解是什么?
三个基本的注解
1、@Override
写在子类某个方法代码上面,表该方法为重写
写不写注解区别: 写时编译会检查是否真的重写,没重写会报错(编译层面验证); 不写时为普通方法,父类有该方法时也是属于重写
注解类(特殊的格式,不是接口):
@Target 为修饰注解的注解(称为元注解)
2、 @Deprecated
(表某元素已过时,但仍可使用) 作用: 作为一个版本升级过渡
3 、@SuppressWarnings
作用: 不希望看到警告信息时 大括号:想要抑制的警告信息(属性值可查看文档)
作用域:
四、元注解:对注解进行注解 (了解即可)
作用不大,看源码知道是什么即可
元注解:修饰注解的注解