编程语言
首页 > 编程语言> > 《Java枚举》

《Java枚举》

作者:互联网

枚举对应对应英文enumeration,简写为enum。

枚举是一组常量的集合,可以理解为:枚举属于一种特殊的类,里面只包含一组有限的特定的对象。

枚举实现的两种方式

1)自定义类实现枚举。

2)使用 enum 关键字实现枚举。

自定义实现枚举的步骤如下:

1、 构造器私有化, 目的防止直接 new。

2、 删除setXxx方法, 防止属性被修改。

3 、在Season内部, 直接创建固定的对象。

public class Enumeration01 {
    public static void main(String[] args) {
        System.out.println(Season.SPRING);
        System.out.println(Season.AUTUMN);
    }
}

class Season{
    private String name;
    private String desc;//描述

    //定义了 4 个对象, 固定
    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("夏天","炎热");

    //1、 构造器私有化, 目的防止直接 new。
    //2、 删除setXxx方法, 防止属性被修改。
    //3 、在Season内部, 直接创建固定的对象。
    //4、 可以加入 final 修饰符
    private Season(String name, String desc) {
        this.name = name;
        this.desc = desc;
    }

    public String getName() {
        return name;
    }

    public String getDesc() {
        return desc;
    }

}

小结 自定义类实现枚举:

1、 不需要提供 setXxx 方法,因为枚举类型对象值通常为只读。

2、枚举类对象/属性使用 final + static 共同修饰,实现底层优化。

3、枚举对象名通常全部使用大写,常量的命名规范。

4、 枚举对象根据需要,可以有多个属性。

有以下特点:

1)构造器私有化

2)本类内部创建一组对象【例如 : 四个春夏秋冬】。

3)对外暴露对象(通过为对象添加修饰符public final static 修饰)。

4)可以提供 get 方法,但是不要提供 set。

使用 enum 关键字实现枚举步骤如下:

1、 使用关键字 enum 来代替 class

2、直接使用SPRING("春天",”温暖“); 即 常量名(实参列表)。

3、如果有多个常量(对象),使用 逗号 进行间隔。

enum Season2{

    //1、 使用关键字 enum 来代替 class
    //2、直接使用SPRING("春天",”温暖“); 即 常量名(实参列表)。
    //3、如果有多个常量(对象),使用 逗号 进行间隔。
    //4、如果使用enum来实现枚举,要求将所定义的常量对象,写在最前面。
    SPRING("春天","温暖"),
    WINTER("冬天","寒冷"),
    AUTUMN("秋天","凉爽");

    private String name;
    private String desc;//描述

    private Season2(String name, String desc) {
        this.name = name;
        this.desc = desc;
    }

    public String getName() {
        return name;
    }

    public String getDesc() {
        return desc;
    }
}

使用enum关键字的注意事项:

1、当我们使用enum 关键字开发一个枚举类时,会默认继承Enum类,而且是一个final类 。

2、传统的 public static final Season SPRING = new Season("春天","温暖"); 简化成 SPRING("春天","温暖"); 这里必须知道,它调用的是哪一个构造器。

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

enum Season{
   SPRING;  // 等价于 SPRING();

   private Season{
   } 
}

4、当有多个枚举对象时,使用逗号间隔,最后一个使用分号。

5、枚举对象必须放在枚举类的行首。

标签:Java,String,Season,name,枚举,public,desc
来源: https://blog.csdn.net/m0_64318566/article/details/123600502