枚举类的使用

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

自定义枚举类

  1. 步骤

    1. 声明Season对象的属性,private final修饰
    2. 私有化类的构造器,并给对象属性赋值
    3. 提供当前枚举类的多个对象: public static final的
  2. 举例

    package com.yicurtain.enumClass;
    
    public class SeasonTest {
        public static void main(String[] args) {
            Season spring = Season.spring;
            System.out.println(spring);
    
        }
    }
    
    
    
    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.其他述求
        public String getSeasonName() {
            return seasonName;
        }
    
        public String getSeasonDesc() {
            return seasonDesc;
        }
    //4.其他述求
        @Override
        public String toString() {
            return "Season{" +
                    "seasonName='" + seasonName + '\'' +
                    ", seasonDesc='" + seasonDesc + '\'' +
                    '}';
        }
    }
    
    

使用enum关键字定义枚举类

  1. 举例

    package com.yicurtain.enumClass;
    //使用enum定义枚举类,该枚举类继承于java.lang.Enum
    public class SeasonTest1 {
        public static void main(String[] args) {
            Season1 summer = Season1.summer;
            System.out.println(summer);
    
        }
    }
    
    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.其他述求
        public String getSeasonName() {
            return seasonName;
        }
    
        public String getSeasonDesc() {
            return seasonDesc;
        }
        //4.其他述求
      //  @Override
    //    public String toString() {
    //        return "Season1{" +
    //                "seasonName='" + seasonName + '\'' +
    //                ", seasonDesc='" + seasonDesc + '\'' +
    //                '}';
    //    }
    }
    
    

Enum类中的常用方法

  1. values()方法:返回枚举类型的对象数组。该方法可以很方便地遍历所有的
    枚举值。
  2. valueOf(String str):可以把一个字符串转为对应的枚举类对象。要求字符
    串必须是枚举类对象的“名字”。如不是,会有运行时异常:
    IllegalArgumentException。
  3. toString():返回当前枚举类对象常量的名称

使用enum关键字定义的枚举类实现接口的情况

  1. 实现接口,在enum类中实现抽样方法
  2. 让枚举类的对象分别实现接口中的抽象方法
posted on 2021-06-30 22:12  yicurtain  阅读(81)  评论(0)    收藏  举报