Java基础教程:枚举类型
2020-12-13 04:24
标签:highlight work return 常量 构造 命名 cte 选择 eve 枚举是将一具有类似特性的值归纳在一起的方法。比如,我们可以将周一到周日设计为一个枚举类型、彩虹的七种颜色设计为一个枚举类型。 我们通过定义常量的方式来实现,如下: 我们可以直接在程序中通过RainbowColor.XXXX来引用这些常量。 Java 5.0之后推出了enum关键字,在语言层面增加了枚举类型。现在我们再来定义彩虹颜色值的枚举类型 从上面的定义形式来看,似乎 Java 中的枚举类型很简单,但实际上 Java 语言规范赋予枚举类型的功能非常的强大,它不仅是简单地将整形数值转换成对象,而是将枚举类型定义转变成一个完整功能的类定义。这种类型定义的扩展允许开发者给枚举类型增加任何方法和属性,也可以实现任意的接口。另外,Java 平台也为 Enum 类型提供了高质量的实现,比如默认实现 Comparable 和 Serializable 接口,让开发者一般情况下不用关心这些细节。 枚举类型的一个作用是扩大了 switch 语句使用范围。5.0 之前,Java 中 switch 的值只能够是简单类型,比如 int、byte、short、char, 有了枚举类型之后,就可以使用对象了。这样一来,程序的控制选择就变得更加的方便 如果需要给枚举类型增加一些复杂功能,也可以通过类似 class 的定义来给枚举进行定制。比如要给 enum 类型增加属性,可以像下面这样定义: 不过有几个和类定义不同的地方需要注意: JDK5.0 中在增加 Enum 类的同时,也增加了两个工具类 EnumSet 和 EnumMap,这两个类都放在 java.util 包中。这两者使用均和传统的Map、Set操作相同。 Java基础教程:枚举类型 标签:highlight work return 常量 构造 命名 cte 选择 eve 原文地址:https://www.cnblogs.com/MrSaver/p/11109511.htmlJava基础教程:枚举类型
枚举类型
常量实现枚举
Public static class RainbowColor {
// 红橙黄绿青蓝紫七种颜色的常量定义
public static final int RED = 0;
public static final int ORANGE = 1;
public static final int YELLOW = 2;
public static final int GREEN = 3;
public static final int CYAN = 4;
public static final int BLUE = 5;
public static final int PURPLE = 6;
}
常量实现的枚举存在问题
ENUM关键字
enum RainbowColor {
RED, ORANGE, YELLOW, GREEN, CYAN, BLUE, PURPLE
}
使用Switch语句
// 定义一周七天的枚举类型
public enum WeekDayEnum { Mon, Tue, Wed, Thu, Fri, Sat, Sun }
// 读取当天的信息
WeekDayEnum today = readToday();
// 根据日期来选择进行活动
switch(today) {
Mon: do something; break;
Tue: do something; break;
Wed: do something; break;
Thu: do something; break;
Fri: do something; break;
Sat: play sports game; break;
Sun: have a rest; break;
}
定制Enum类型
enum WeekDayEnum {
Mon("EAT"),
Tue("FLY"),
Wed("SLEEP"),
Thu("SWIM"),
Fri("STUDY"),
Sat("SIT"),
Sun("SEE");
//枚举对象私有属性
private String thing;
//枚举对象构造函数
private WeekDayEnum(String thing) {
this.thing = thing;
}
//枚举对象定制方法
public String getThing() {
return thing;
}
}
Enum相关工具类
获取子集
EnumSet
Map
// 定义一个 EnumMap 对象,映射表主键是日期枚举类型,值是颜色枚举类型
private static Map
参考链接