枚举类

1.自定义枚举类

1.1 代码实现

构造枚举代码:

  1. public class CustomEnum {
  2. private final String name;
  3. private final String desc;
  4. private CustomEnum(String name,String desc){
  5. this.desc = desc;
  6. this.name = name;
  7. }
  8. public static final CustomEnum CHUN = new CustomEnum("春天","春暖花开");
  9. public static final CustomEnum XIA = new CustomEnum("夏天","生如夏花");
  10. public static final CustomEnum QIU = new CustomEnum("秋天","秋风瑟瑟");
  11. public static final CustomEnum DONG = new CustomEnum("冬天","白雪皑皑");
  12. public String getName() {
  13. return name;
  14. }
  15. public String getDesc() {
  16. return desc;
  17. }
  18. @Override
  19. public String toString() {
  20. return "CustomEnum{" +
  21. "name='" + name + '\'' +
  22. ", desc='" + desc + '\'' +
  23. '}';
  24. }
  25. }

测试代码:

class test{
    public static void main(String[] args) {
        CustomEnum chun = CustomEnum.CHUN;
        System.out.println(chun.getDesc());
        System.out.println(chun.getName());
        System.out.println(chun.toString());
    }
}

image.png

1.2 流程梳理

  1. 声明属性,声明成private final属性
  2. 声明全参的私有构造方法
  3. 提供public static 的属性,实例化本类并进行赋值
  4. 实现get方法,toString方法
  5. 通过类名对静态属性的调用就可以实现对私有属性的调用

    2. 枚举类的使用

    1.1 代码实现

    构造枚举类:

    public enum TestEnum {
     CHUN("春天","春暖花开"),
     XIA("夏天","生如夏花"),
     QIU("秋天","秋风瑟瑟"),
     DONG("冬天","白雪皑皑");
     private final String name;
     private final String desc;
     private TestEnum(String name,String desc){
         this.desc = desc;
         this.name = name;
     }
    
     public String getName() {
         return name;
     }
    
     public String getDesc() {
         return desc;
     }
    }
    

    测试代码:

    class te{
     public static void main(String[] args) {
         String name = TestEnum.CHUN.getName();
         String desc = TestEnum.CHUN.getDesc();
         System.out.println(name+":"+desc);
     }
    }
    

    image.png

    2.2 流程梳理

  6. 先声明公共的属性以及实例化对象,写到枚举类的最上面,用逗号隔开

  7. 声明 private final 属性
  8. 构造全参私有构造器
  9. 写get()方法等一系列的客制化功能
  10. 与自己手写的Enum类相比,只是将第③部放到最上面已经剔除掉相同的代码

    2.3 枚举类常用的方法

  11. values()方法:返回枚举类型的对象数组。该方法可以很方便的遍历所有的枚举值。

  12. valueOf(String str):通过传入字符获取名称与字符串名称相同的枚举类对象
  13. toString():返回当前枚举类对象常量的名称

    2.4 枚举类实现接口或进行客制化

    枚举类可以通过 在枚举类对象的后面加上{覆写}的方式进行客制化的覆写