• 枚举类Enum


    什么是枚举类

     1、在某些情况下,一个类的实例对象的数量是有限且固定的,如季节类,它的实例对象只有春、夏、秋、冬。在Java中像这种对象实例有限且固定的类被称为枚举类;

     2、在Java中使用enum关键字来定义枚举类,其地位与class、interface相同;

       3、枚举类是一种特殊的类,它和普通的类一样,有自己的成员变量、成员方法、构造器(只能使用 private访问修饰符,所以无法从外部调用构造器,构造器只在构造枚举值时被调用)

    自定义枚举类

    创建步骤

    1. 将构造器私有化,不让用户随意调用

    2. 去掉 set 方法,不让用户随意修改,保留 get 方法

    3. 在类的内部,直接创建具体固定的对象(用 static 去修饰)

    4. 利用 final 去进一步修饰,再次防止用户修改

    1. //演示自定义类枚举
    2. class Season02{
    3. private String name;
    4. private String desc;
    5. //自定义类实现枚举
    6. public final static Season02 SPRING = new Season02("春天", "万物复苏");
    7. public final static Season02 SUMMER = new Season02("夏天", "是真的热");
    8. public final static Season02 AUTUMN = new Season02("秋天", "飒爽又悲凉");
    9. public final static Season02 WINTER = new Season02("冬天", "这里的冬天没有雪");
    10. private Season02(String name, String desc) {
    11. this.name = name;
    12. this.desc = desc;
    13. }
    14. public String getName() {
    15. return name;
    16. }
    17. public String getDesc() {
    18. return desc;
    19. }
    20. @Override
    21. public String toString() {
    22. return "Season02{" +
    23. "name='" + name + '\'' +
    24. ", desc='" + desc + '\'' +
    25. '}';
    26. }
    27. }

    Enum 创建枚举类

    所有的枚举值都是public static final的,且非抽象的枚举类不能再派生子类;

    如果有多个常量,就用逗号进行间隔,在最后一个常量写完后用分号表示语句结束即可;

    使用 enum 定义枚举时,需要将定义的常量对象写在最前面;

    1. public class WareConstant {
    2. public enum PurchaseStatusEnum{
    3. CREATED(0,"新建"),ASSIGNED(1,"已分配"),
    4. RECEIVE(2,"已领取"),FINISH(3,"已完成"),
    5. HASERROR(4,"有异常");
    6. private int code;
    7. private String msg;
    8. private PurchaseStatusEnum(int code,String msg){
    9. this.code = code;
    10. this.msg = msg;
    11. }
    12. public int getCode() {
    13. return code;
    14. }
    15. public String getMsg() {
    16. return msg;
    17. }
    18. }
    19. public enum PurchaseDetailStatusEnum{
    20. CREATED(0,"新建"),ASSIGNED(1,"已分配"),
    21. BUYING(2,"正在采购"),FINISH(3,"已完成"),
    22. HASERROR(4,"采购失败");
    23. private int code;
    24. private String msg;
    25. private PurchaseDetailStatusEnum(int code,String msg){
    26. this.code = code;
    27. this.msg = msg;
    28. }
    29. public int getCode() {
    30. return code;
    31. }
    32. public String getMsg() {
    33. return msg;
    34. }
    35. }
    36. }

    Enum 使用细节

    • 使用 enum 关键字后,就不能在继承其它类了,因为 enum 会隐式继承 Enum,但是 Java 是单继承机制的。

    • 枚举类可以去实现接口,且实现形式和其它普通类一样。

    • 如果使用无参构造器创建枚举对象,则实参列表和小括号都可以省略

    • 当有多个枚举对象时,使用,间隔,最后有一个分号结尾

    • 枚举对象必须放在枚举类的行首
       

    枚举类 (Enum)——个人修炼 - 知乎

  • 相关阅读:
    干货!ASSANet:让PointNet++更快更强
    【构建ML驱动的应用程序】第 3 章 :构建您的第一个端到端管道
    【我的C/C++语言学习进阶之旅】C语言标识符的命名规则和分类
    语言基础篇16——Python中的函数式编程
    dreamweaver作业静态HTML网页设计——摩尔庄园7页HTML+CSS+JS DW大学生网页作业制作设计 Dreamweaver简单网页
    Boc-QAR-AMC,CAS号:201849-55-0/113866-20-9
    设计模式之美——基于接口编程
    Spring Boot 配置文件总结
    mysql存储过程和函数
    Java 泛型概念与优势(一)
  • 原文地址:https://blog.csdn.net/m0_46845579/article/details/126407306