zoukankan      html  css  js  c++  java
  • 自定义枚举

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

    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;
            }
        }
    }
    

      

  • 相关阅读:
    idae修改默认maven全局设置以及maven的设置
    LINUX 基本察看命令
    tar解压bz2文件报错
    kafka和zookeeper集群部署
    elasticsearch集群部署和kibana插件部署
    tomcat JVM调优
    搭建zookeeper集群的坑
    判断链表是否有环,以及求出入环节点
    判断一个数是否是完全二叉树
    堆排序
  • 原文地址:https://www.cnblogs.com/xiaomaomao/p/15237631.html
Copyright © 2011-2022 走看看