《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