• 枚举和注解02:enum关键字实现枚举类


    enum关键字实现枚举类1

    • 1、使用关键字替代class
    • 2、public static final Season SPRING = new Season(“春天”, “温暖”);直接使用SPRING(“春天”,“温暖”) 解读 常量名(实参列表)
    • 3、如果有多个常量(对象),使用,号间隔即可,用分号结尾
    • 4、如果使用enum来实现枚举,要求将定义常量对象,写在行首
    package com.enum_;
    
    /**
     * @version 1.0
     * @anther 田毅
     */
    public class Enumeration03 {
        public static void main(String[] args) {
            System.out.println(Season2.SUMMER);
        }
    }
    
    enum Season2{
    
        //定义个四个对象
    //    public static final Season SPRING = new Season("春天", "温暖");
    //    public static final Season WINTER = new Season("冬天", "寒冷");
    //    public static final Season AUTUMN = new Season("秋天", "凉爽");
    //    public static final Season SUMMER = new Season("夏天", "炎热");
        SPRING("春天","温暖"),SUMMER("春天","温暖"),WINTER("春天","温暖")
        ,AUTUMN("春天","温暖");
        private String name;
        private String desc;
    
        //1、将构造器私有化,防止直接new出来
        //2、去掉setXxx相关的方法,防止属性被修改
        //3、在Season内部,直接创建固定的对象
        //4、优化一下,可以再加一个final 
        private Season2(String name, String desc) {
            this.name = name;
            this.desc = desc;
        }
    
        public String getName() {
            return name;
        }
    
    
    
        public String getDesc() {
            return desc;
        }
    
        @Override
        public String toString() {
            return "Season{" +
                    "name='" + name + '\'' +
                    ", desc='" + desc + '\'' +
                    '}';
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51

    enum关键字实现枚举类2

    注意事项

    • 1、使用enum关键字开发一个枚举类时,默认会继承Enum类,而且是一个final类,通过javap反编译证明
      请添加图片描述

    • 2、传统的public static final Season2 SPRING = new Season2(“春天”,“温暖”);简化成了SPRING(“”,“”);,这里必须知道,调用的是哪个构造器;

    • 3、如果使用无参构造器创建枚举对象,则实参列表和小括号都可以省略。

    AUTUMN(“春天”,“温暖”),What(),Why;

    • 4、枚举对象必须放在枚举类的行首。
    • 5、当有多个枚举对象时,使用,间隔,最后有一个分号结尾;
    enum Season2{
    
        //定义个四个对象
    //    public static final Season SPRING = new Season("春天", "温暖");
    //    public static final Season WINTER = new Season("冬天", "寒冷");
    //    public static final Season AUTUMN = new Season("秋天", "凉爽");
    //    public static final Season SUMMER = new Season("夏天", "炎热");
        SPRING("春天","温暖"),SUMMER("春天","温暖"),WINTER("春天","温暖")
        ,AUTUMN("春天","温暖"),What(),Why;
        private String name;
        private String desc;
    
        private Season2() {//无参构造器
        }
    
        //1、将构造器私有化,防止直接new出来
        //2、去掉setXxx相关的方法,防止属性被修改
        //3、在Season内部,直接创建固定的对象
        //4、优化一下,可以再加一个final 
        private Season2(String name, String desc) {
            this.name = name;
            this.desc = desc;
        }
    
        public String getName() {
            return name;
        }
    
    
    
        public String getDesc() {
            return desc;
        }
    
        @Override
        public String toString() {
            return "Season{" +
                    "name='" + name + '\'' +
                    ", desc='" + desc + '\'' +
                    '}';
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43

    enum关键字实现枚举类3

    课堂练习1
    请添加图片描述
    课堂练习2
    请添加图片描述
    sout默认调用toString

  • 相关阅读:
    我也来一个“羊了个羊”
    搜索EE场景排序链路升级
    Git(9)——Git多人协同开发之创建初始项目
    TypeScript小状况之选且只选一个
    优维产品最佳实践第14期:让重要告警能有序跟进,最终根治
    【UI设计】Figma_“全面”快捷键
    Apache Ignite 基本概念
    SystemVerilog学习(4)——自定义结构
    MySQL的安装
    海藻酸钠-peg-环糊精|alginate-peg-Cyclodextrin
  • 原文地址:https://blog.csdn.net/tianyi520jx/article/details/126441210