• 【Java基础夯实】枚举类回炉重造


    🧑‍💻作者名称:DaenCode
    🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。
    😎人生感悟:尝尽人生百味,方知世间冷暖。
    📖所属专栏:Java基础夯实


    在这里插入图片描述


    专栏推荐

    • 专门为Redis入门打造的专栏,包含Redis基础知识、基础命令、五大数据类型实战场景、key删除策略、内存淘汰机制、持久化机制、哨兵模式、主从复制、分布式锁等等内容。链接>>>>>>>>>《Redis从头学》
    • 专门为RabbitMQ入门打造的专栏,持续更新中。。。。。。。。链接>>>>>>>《图解RabbitMQ》

    🌟介绍

    • Enum关键字,是JavaSE5中添加的新特性。
    • 它是这一种特殊的类,常量类。一组特定含义的常量类。

    🌟普通类

    特点

    • 构造器公有化。
    • 可以使用setter方法设置属性值。
    • 可以使用getter方法获取属性值。

    背景:在平常创建具有特殊含义的类时,比如季节类。它只有春夏秋冬四个属性值,而如果有人通过Season创建了一个unknown季节呢?这样设计类显然很不符合规范,于是便有了枚举类。

    Class Season{
    private String name;
    private String description;
    //getter\setter
    //constructor
    }
    main方法:
    Season s=new Season("春","....");
    Season s=new Season("夏","....");
    Season s=new Season("秋","....");
    Season s=new Season("冬","....");
    Season s=new Season("unnow","....");
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    🌟自定义枚举类

    特点:

    • 构造器私有化。防止外部创建对象。
    • 只读。只能获取属性值,而无法修改属性值。
    • 跟普通类一样,可以创建多个属性包括方法。
    class Season{
    private static final SPRING=new Season("春","");
    private static final SPRING=new Season("夏","");
    private static final SPRING=new Season("秋","");
    private static final SPRING=new Season("冬","");
    //私有化构造器
    private String name;
    private String description;
    //getter方法。
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    🌟Enum枚举类

    特点:

    • 枚举类构造器私有化。
    • 属性只读。只能创建getter方法。
    • 使用时无需实例化。
    • 是常量类,不能被继承。
    • 继承自java.lang.Enum。
    • 具有隐藏属性values获取所有枚举值。
    • 具有隐藏方法valuesOf();
    public enum BizCodeEnum {
        /**
         * 通用操作码
         */
        OPS_REPEAT(110001,"重复操作"),
        /**
         *验证码
         */
        CODE_TO_ERROR(240001,"接收号码不合规"),
        CODE_LIMITED(240002,"验证码发送过快"),
        CODE_ERROR(240003,"验证码错误"),
        CODE_CAPTCHA(240101,"图形验证码错误"),
        /**
         * 账号
         */
        ACCOUNT_REPEAT(250001,"账号已经存在"),
        ACCOUNT_UNREGISTER(250002,"账号不存在"),
        ACCOUNT_PWD_ERROR(250003,"账号或者密码错误");
        @Getter
        private String message;
        @Getter
        private int code;
        private BizCodeEnum(int code,String message){
            this.code=code;
            this.message=message;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    🌟总结

    枚举类是 Java 中一种特殊的类,用于表示一组固定的常量。与普通类相比,枚举类有以下几个特点:

    1. 构造器私有化:枚举类的构造器被私有化,防止外部代码创建对象。
    2. 属性只读:枚举类的属性通常使用 private final 修饰,外部只能获取属性值,无法修改。
    3. 无需实例化:枚举类的常量在使用时无需进行实例化,可以直接通过类名访问。
    4. 常量类:枚举类是一种常量类,定义的常量是该类的实例。
    5. 不可继承:枚举类不能被继承,它继承自 java.lang.Enum 类。
    6. 内置方法:枚举类提供了一些内置方法,如 values() 获取所有枚举值的数组,valueOf() 根据常量名称获取对应的枚举值。

    枚举类的优点在于它可以提供更安全和更易读的代码。通过使用枚举类来表示一组固定的常量,可以避免使用硬编码的常量,在代码中使用枚举值可以增加代码的可读性和可维护性。此外,枚举类还能够与 switch 语句结合使用,提高代码的可读性。

    总之,枚举类是一种特殊的常量类,它在 Java 中用于表示一组固定的常量,提供了更安全和更易读的代码编写方式。

    🌟写在最后

    有关于枚举类回炉重造到此就结束了。感谢大家的阅读,希望大家在评论区对此部分内容散发讨论,便于学到更多的知识。


    请添加图片描述

  • 相关阅读:
    c++网络编程
    2022年1111/双11淘宝/天猫/京东任务自动助手,分享源码学习
    目前最稳定的Win10 21H2版本19044.2006
    零售数据分析报表这样做,老板狂点赞!
    Web3 治理实践探讨:如何寻找多元化发展路径?
    【C++】手撕string(string的模拟实现)
    【Designing ML Systems】第 9 章 :生产中的持续学习和测试
    企业可以自己建立大数据平台吗?有哪些好处?
    springboot2.7.x 集成log4j2配置写入日志到mysql自定义表格
    linux-redis常用命令
  • 原文地址:https://blog.csdn.net/2302_79094329/article/details/132912517