• 枚举


    转:https://blog.csdn.net/xxdw1992/article/details/107408498

    1 定义枚举

      使用enum关键字来定义枚举

    public enum ContractOperate_Enum implements BaseEnum {
    
    
        XIN_QIAN("2", "合同新签"),
        XIN_QIAN_ON_TESE("3", "试住合同上新签正式合同"),
        XU_QIAN("4", "合同续签"),
        HU_LI_DENG_JI_BIAN_GENG("5","护理等级变更"),
        HUAN_FANG("6","换房"),
        TIAN_JIA_RU_ZHU_REN("7","添加入住人"),
        YI_CHU_RU_ZHU_REN("8","移除入住人"),
        RU_ZHU_FAN_SHI_BIAN_GENG("9","入住方式变更"),
        JIE_SU("10", "合同结束");
    
    
    
        private String code;
    
        private String desc;
    
        private ContractOperate_Enum(String code, String desc) {
            this.code = code;
            this.desc = desc;
        }
    
        public static ContractOperate_Enum getByCode(String code) {
            if (TxtUtil.isEmpty(code))
                return null;
            ContractOperate_Enum[] allEnums = ContractOperate_Enum.values();
            for (ContractOperate_Enum thisEnum : allEnums) {
                if (thisEnum.code.equals(code)) {
                    return thisEnum;
                }
            }
            return null;
        }
    
        public String getCode() {
            return code;
        }
    
        public void setCode(String code) {
            this.code = code;
        }
    
        public String getDesc() {
            return desc;
        }
    
        public void setDesc(String desc) {
            this.desc = desc;
        }
    
    }

      注意,定义枚举类的关键字是enum,而不是Enum,所有关键字都是小写的!
      其中XIN_QIAN、XIN_QIAN_ON_TESE等9个都是枚举项,它们都是本类的实例,本类一共就只有9个实例对象。

      在定义枚举项时,多个枚举项之间使用逗号分隔,最后一个枚举项后需要给出分号!但如果枚举类中只有枚举项(没有构造器、方法、实例变量),那么可以省略分号!建议不要省略分号!
          不能使用new来创建枚举类的对象,因为枚举类中的实例就是类中的枚举项,所以在类外只能使用类名.枚举项

    2  所有枚举类都是Enum的子类

    3 枚举类的构造器

      枚举类也可以有构造器,构造器默认都是private修饰,而且只能是private。因为枚举类的实例不能让外界来创建

    4 枚举类可以有成员

      其实枚举类和正常的类一样,可以有实例变量,实例方法,静态方法等等,只不过它的实例个数是有限的,在定义枚举的时候就已经定好有几个实例了

    5 枚举类中还可以有抽象方法

      还可以在枚举类中给出抽象方法,然后在创建每个枚举项时使用“特殊”的语法来重复抽象方法。

    enum Direction {
        FRONT() {
            public void fun() {
                System.out.println("FROND:重写了fun()方法");
            }
        }, 
        BEHIND() {
            public void fun() {
                System.out.println("BEHIND:重写了fun()方法");
            }
        }, 
        LEFT() {
            public void fun() {
                System.out.println("LEFT:重写了fun()方法");
            }
        },
        RIGHT() {
            public void fun() {
                System.out.println("RIGHT:重写了fun()方法");
            }
        };
        
        public abstract void fun()[只需要把fun()方法修改为抽象方法,但不可以把Direction类声明为抽象类。];
    }

     

    6 每个枚举类都有两个特殊方法

     

  • 相关阅读:
    Spark集群下的K-Means算法
    牛客:数据库SQL实战(一)查询入职最晚的员工的所有信息
    吴军《硅谷之谜》
    IntelliJ IDEA 中 右键新建(new)时,选项没有scala(java) class的解决方法和具体解释
    Gitlab跨版本升级
    Kubernetes 0-1 Pod中的livenessProbe和readinessProbe解读
    Kubernetes 0-1 了解Pod
    Kubernetes 0-1 K8S自建LoadBalancer
    Kubernetes 0-1 K8S部署coredns
    Kubernetes 0-1 二进制搭建K8S(四)部署Node
  • 原文地址:https://www.cnblogs.com/jthr/p/16262648.html
Copyright © 2020-2023  润新知