作用:
1、可以用来限制取值个数,--有限的实例对象
2、降低出错的几率
3、代码整洁
使用场景:
有限个数的取值
用法:
使用enum关键字
特性:
1、枚举类型中可以包含属性、方法、构造方法(必须为私有)
2、构造方法必须为私有的,不允许在外部构建对象(不要写setter方法),只能在内部创建对象
3、在内部创建枚举对象时必须位于类的第一行(非注释行)
4、在内部创建枚举对象实质就是调用构造方法,如果调用的无参构造则‘()’可以省略
5、可以创建多个枚举对象,对象之间用逗号隔开
6、枚举对象也称之为枚举项,枚举项本质上是静态常量(static final),通过枚举类型名.枚举项的方式进行访问同时在命名 上使用字母全大写
例如:
package com.example.demo.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.NonNull;
import org.springframework.beans.factory.annotation.Autowired;
/**
* @ProjectName: demo
* @Package: com.example.demo.enums
* @ClassName: Sun
* @Author: yu
* @Description: 测试枚举
* @Date: 2020/5/25 11:01
* @Version: 1.0
*/
@Getter
@NoArgsConstructor
@AllArgsConstructor
public enum Sun {
// 定义枚举类型的对象,即枚举项
MONDAY(1,"星期一"),THUSDAY(2,"星期二"),All(),AllS;//这个后面必须有分号
private int code;
private String name;
}
参考自:https://edu.csdn.net/course/play/22984/263738
补充:
1、枚举可以实现接口
普通实现方式,匿名内部类范式
2、枚举中可以定义抽象方法,使用时使用:实例.抽象方法来调用抽象方法(感觉怪怪的)
3、switch支持枚举类型了
4、枚举类似于一种多例模式
https://edu.csdn.net/course/play/3576/62269?spm=1002.2009.3001.4024