zoukankan      html  css  js  c++  java
  • java中枚举类enum

    用法1: 定义常量

    替代传统的public static final 定义常量的方式

    enum Weekday{
        Sundya,
        Monday,
        Friday,
        ;
    }

    注意:

    1、和普通的常量一样,定义后不能修改

    Weekday.Sunday ="Tusday";

    2、最后的分号‘;’可以没有,但是如果要定义类方法 构造方法 等必须要加,但是不定义方法时最好也添加。

    用法2:switch case中除了可以是int String ,还可以是enum枚举数据类型

    enum Weekday{
        Sundya,
        Monday,
        Friday,
        ;
    }
    
    class EnumDemo1{
        public static void main(String[] args){
            Weekday day1 =Weekday.Friday;
            switch(day1){
                case Friday:
                    System.out.println("星期五");
                    break;
                case Monday:
                    System.out.println("星期一");
                case Sunday:
                    System.out.println("周日");
                    
                default:
                    System.out.println("未在枚举中");
                    
            }
        }
    }

     用法3、枚举类 定义有参数构造函数,定义/重写普通的方法

    enum EnvEnum{
    
        //实例化有限个枚举对象,并且初始化属性(要和构造方法参数对应)
        T1("t1","t1测试环境"),
        T2("t2","t2测试环境"),
        T3("t3","t3测试环境"),
        Dev1("dev1","dev1开发环境"),
        ;
    
        //定义实例化属性
        private String name;
        private String desc;
    
        //有参数构造方法 -默认是private修饰,不能使用public
        EnvEnum(String name, String desc){
            this.name =name;
            this.desc =desc;
        }
        
        //定义枚举的其他方法
        public String toString(){
            System.out.println("当前环境是:"+name+",描述是:"+desc);
        }
    }

    注意:

    1、罗列有限个枚举对象时,其参数必须和构造方法一致

    2、如果不定义有参数构造方法,不能罗列有参数枚举对象(比如上面的罗列常量时,不需要有参数构造方法)

    2、枚举类的有参数构造方法,不是使用public修饰,默认是使用private修饰。 因为:如果是public修饰那么在其他类中就可以调用此构造方法创建枚举对象,但是枚举类的枚举对象只能是上面罗列

    出的有限个枚举对象,所以不能使用public修饰

    用法4:在外部类中调用枚举类对象、对象属性、获取所有枚举对象

    调用枚举对象:枚举类名.枚举对象

    获取所有枚举对象:枚举类名.values()

    enum EnvEnum{
    
        //实例化有限个枚举对象,并且初始化属性(要和构造方法参数对应)
        T1("t1","t1测试环境"),
        T2("t2","t2测试环境"),
        T3("t3","t3测试环境"),
        Dev1("dev1","dev1开发环境"),
        ;
    
        //定义实例化属性
        public String name;
        public String desc;
    
        //有参数构造方法 -默认是private修饰,不能使用public
        EnvEnum(String name, String desc){
            this.name =name;
            this.desc =desc;
        }
    }
    
    class Demo11{
    
        public static void main(String[] args){
    
            //1、调用枚举对象、枚举对象的属性
            if(EnvEnum.T1.name =="t1"){
                System.out.println("是t1环境");
            }
    
            //2、获取所有的枚举实例对象
            for(EnvEnum env : EnvEnum.values()){
                System.out.println(env.name);
            }
        }
    }

    参考文档:

    https://lixuekai.blog.csdn.net/article/details/52180865?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.control&dist_request_id=1619680762190_68030&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.control

  • 相关阅读:
    db2 SQL3055N 报错分析解决
    db2之load报错SQL3107W解决
    db2报错之ERRORCODE=-4220 SQLSTATE=NULL
    mybatis-generator自动生成工具配置
    db2 表空间backup pending
    DB2
    Redis
    Linux安装Redis
    vue2.0学习(五)-Vue-router
    JavaScript基础-数据类型
  • 原文地址:https://www.cnblogs.com/jesse-zhao/p/14721499.html
Copyright © 2011-2022 走看看