枚举类

一、使用

  1. 理解:类的对象只有有限个、确定的,我们称此类为枚举类
  2. 当需要定义一组常量时,强烈建议使用枚举类
  3. 如果枚举类中只有一个对象,则可以作为单例模式的实现方式

二、自定义枚举类(JDK5.0之前)

    //自定义枚举类
    class Season {
        //1、声明Season对象的属性:private final修饰
        private final String seasonName;
        private final String seasonDesc;

        //2、私有化类的构造器
        private Season(String seasonName,String seasonDesc){
            this.seasonName = seasonName;
            this.seasonDesc = seasonDesc;
        }

        //3、提供当前枚举类的多个对象:public static final修饰
        public static final Season SPRING = new Season("春天","春暖花开");
        public static final Season SUMMER = new Season("夏天","夏日炎炎");
        public static final Season AUTUMN = new Season("秋天","秋高气爽");
        public static final Season WINTER = new Season("冬天","冰天雪地");
    
        //4、其他诉求1:获取枚举类对象的属性
        public String getSeasonName() {
            return seasonName;
        }

        public String getSeasonDesc() {
            return seasonDesc;
        }

        //4、其他诉求2:提供toString方法()
        @Override
        public String toString() {
            return "Season{" + "seasonName='" + seasonName + '\'' + ", seasonDesc='" + seasonDesc + '\'' +'}';
        }
    }

三、使用enum定义枚举类(JDK5.0及之后)

    //使用enum关键字定义枚举类
    enum Season1 {
        //1、提供当前枚举类的对象,多个对象之间用","隔开,末尾对象用";"结束
        SPRING("春天","春暖花开"),
        SUMMER("夏天","夏日炎炎"),
        AUTUMN("秋天","秋高气爽"),
        WINTER("冬天","冰天雪地");

        //2、声明Season对象的属性:private final修饰
        private final String seasonName;
        private final String seasonDesc;

        //3、私有化类的构造器
        private Season1(String seasonName,String seasonDesc){
            this.seasonName = seasonName;
            this.seasonDesc = seasonDesc;
        }

        //4、其他诉求1:获取枚举类对象的属性
        public String getSeasonName() {
            return seasonName;
        }

        public String getSeasonDesc() {
            return seasonDesc;
        }
    }
posted @ 2021-09-10 14:08  windy_hu  阅读(43)  评论(0)    收藏  举报