• 自定义枚举


    一、枚举使用规则及注意事项

    1、使用 enum 定义的枚举类默认继承 java.lang.Enum 抽象类,由于 java 是单继承的,所以枚举类不能再继承其它类

    2、使用 enum 定义的枚举类默认使用 final 进行修饰,final 修饰的类不可以被继承

    3、枚举类的构造器只能使用 private 权限修饰符

    4、枚举类的所有实例必须在枚举类中显示列出,多个对象之间使用逗号(,)进行分隔,末尾使用分号(;)结尾

    5、必须在枚举类的第一行声明枚举类实例

    6、如果枚举类只有一个枚举对象,则可以作为一种单例模式的实现方式

    二、自定义枚举的方式

    1、使用 enum 关键字定义单个枚举类

    public enum Novel {
        // 枚举类的实例必须写在枚举类的最前面
        HONG_LOU_MENG(1, "红楼梦"),
        XI_YOU_JI(2, "西游记"),
        SHUI_HU_ZHUAN(3, "水浒传"),
        SAN_GUO_YAN_YI(4, "三国演义");
    
        private Integer type;
        private String name;
    
        // 构造器默认使用 private 修饰,如果要显示的加上权限修饰符,那么只能使用 private 修饰
        private Novel(Integer type, String name) {
            this.type = type;
            this.name = name;
        }
    
        // 由于枚举类是常量,所以只有 get 方法,不建议定义 set 方法
        public Integer getType() {
            return type;
        }
    
        public String getName() {
            return name;
        }
    }
    

    2、使用 interface 定义多个枚举类  

    public interface Books {
        enum Novel {
            HONG_LOU_MENG(1, "红楼梦"),
            XI_YOU_JI(2, "西游记"),
            SHUI_HU_ZHUAN(3, "水浒传"),
            SAN_GUO_YAN_YI(4, "三国演义");
    
            private Integer type;
            private String name;
    
            private Novel(Integer type, String name) {
                this.type = type;
                this.name = name;
            }
    
            public Integer getType() {
                return type;
            }
    
            public String getName() {
                return name;
            }
        }
    
        enum ProgramLanguage {
            PHP(1, "红楼梦"),
            JAVA(2, "西游记"),
            PYTHON(3, "水浒传"),
            JAVA_SCRIPT(4, "三国演义");
    
            private Integer category;
            private String name;
    
            ProgramLanguage(Integer category, String name) {
                this.category = category;
                this.name = name;
            }
    
            public Integer getCategory() {
                return category;
            }
    
            public String getName() {
                return name;
            }
        }
    }
    

      

  • 相关阅读:
    Android标题栏最右边添加按钮
    Activity标题栏添加返回按钮
    【Android】解决Android横竖屏切换数据丢失问题的方法
    Android热更新,到底是更新啥?
    vm ware 虚拟WIN10 时,chrome ,cent browser 显示异常,花屏
    动态生成的 select option 无法选中,设置值
    安装sql 2012 时遇到“需要更新的以前的 Visual Studio 2010 实例。”规则失败。
    C#.NET 简单使用log4net
    10位,13位时间戳转为C#格式时间
    C# .NET Unix 时间戳
  • 原文地址:https://www.cnblogs.com/xiaomaomao/p/15237631.html
Copyright © 2020-2023  润新知