Java枚举类型
内容简介
- 枚举类型
枚举类型
在Java中,被 enum 关键字修饰的类型就是枚举类型,enum 的全称为 enumeration,它是 JDK 1.5 中引入的新特性。所有的枚举类型都是继承自 Enum 类型。
其具有集合的一些特点,用以存放有限个特定名称的元素。例如,分别使用元素 EAST、SOUTH、WEST 和 NORTH 表示方位。
它是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束,因此这些约束的存在也造就了枚举类型的简洁性、安全性以及便捷性。
使用关键字 enum 定义作为引用类型且包含约束的枚举类型,隐式地作为抽象类java.lang.Enum 的子类。枚举类型包含若干枚举值,枚举变量赋值只能取枚举值。通常定义枚举类型时,还可以添加构造方法或其它方法。
枚举一般用于以下情况:定义常量、添加新方法、与switch结合使用、实现接口、使用接口组织枚举。
每个枚举类型均可使用静态方法 values() 获得相应的枚举数组。
注意
枚举类型的构造方法默认是 private ,不可使用 public 等修饰符。
实验要求
(1)新建类 EnumDemo ,并创建 main() 方法体。
(2)在类 EnumDemo 的上方,使用关键字 enum 定义一个反映一周七天的枚举类型Week ,其枚举值分别为 Sun 、Mon 、Tue 、Wed、Thu、Fri 和 Sat。
(3)在 main() 方法体内,编写遍历枚举的代码并测试。
(4)分别给枚举值设定描述值,如 Sun(0) 、Mon(1) 等。相应地,增加字段 int index和构造方法 Week(int index){this.index=index;}
(5)编写根据枚举获取描述值的公有方法 public int getIndex(){return index;}
(6)在 main() 里,编写输出Wed对应描述值的代码并测试。
代码参考
1. 新建类 EnumDemo ,并创建 main() 方法体。
// 新建类EnumDemo,并创建main()方法体。
public class EnumDemo {
public static void main(String[] args) {
}
}
2. 在类 EnumDemo 的上方,使用关键字 enum 定义一个反映一周七天的枚举类型Week ,其枚举值分别为 Sun 、Mon 、Tue 、Wed、Thu、Fri 和 Sat
// 在类EnumDemo的上方,使用关键字enum定义一个反映一周七天的枚举类型Week
enum Week {
// 分别给枚举值设定描述值,如Sun(0)、Mon(1)等。
Sun, Mon, Tue, Wed, Thu, Fri, Sat;
}
3. 在 main() 方法体内,编写遍历枚举的代码并测试。
public static void main(String[] args) {
// 在main()方法体内,编写遍历枚举的代码并测试。
// 增强 for 循环
for(Week day:Week.values())
{
System.out.println(day);
}
}
测试结果

4. 分别给枚举值设定描述值,如 Sun(0) 、Mon(1) 等。相应地,增加字段 int index和构造方法 Week(int index){this.index=index;}
// 在类EnumDemo的上方,使用关键字enum定义一个反映一周七天的枚举类型Week
enum Week {
// 分别给枚举值设定描述值,如Sun(0)、Mon(1)等。
Sun(0), Mon(1), Tue(2), Wed(3), Thu(4), Fri(5), Sat(6);
// 定义枚举描述字段
int index;
// 构造方法,用于实例化枚举描述字段
Week(int index) {
this.index = index;
}
}
5. 编写根据枚举获取描述值的公有方法 public int getIndex(){return index;}
// 编写根据枚举获取描述值的公有方法
public int getIndex() {
return index;
}
6. 在 main() 里,编写输出Wed对应描述值的代码并测试。
// 新建类EnumDemo,并创建main()方法体。
public class EnumDemo {
public static void main(String[] args) {
// 在main()方法体内,编写遍历枚举的代码并测试。
// 增强 for 循环
for (Week day : Week.values()) {
// 在main()里,编写输出Wed对应描述值的代码并测试。
System.out.println(day + "(" + day.getIndex() + ")");
}
}
}
测试结果

完整代码
package unit02;
// (1)新建类EnumDemo,并创建main()方法体。
// (2)在类EnumDemo的上方,使用关键字enum定义一个反映一周七天的枚举类型Week,其枚举值分别为Sun、Mon、Tue、Wed、Thu、Fri和Sat。
// (3)在main()方法体内,编写遍历枚举的代码并测试。
// (4)分别给枚举值设定描述值,如Sun(0)、Mon(1)等。相应地,增加字段int index和构造方法 Week(int index){this.index=index;}
// (5)编写根据枚举获取描述值的公有方法 public int getIndex(){return index;}
// (6)在main()里,编写输出Wed对应描述值的代码并测试。
// 在类EnumDemo的上方,使用关键字enum定义一个反映一周七天的枚举类型Week
enum Week {
// 分别给枚举值设定描述值,如Sun(0)、Mon(1)等。
Sun(0), Mon(1), Tue(2), Wed(3), Thu(4), Fri(5), Sat(6);
// 定义枚举描述字段
int index;
// 构造方法,用于实例化枚举描述字段
Week(int index) {
this.index = index;
}
// 编写根据枚举获取描述值的公有方法
public int getIndex() {
return index;
}
}
// 新建类EnumDemo,并创建main()方法体。
public class EnumDemo {
public static void main(String[] args) {
// 在main()方法体内,编写遍历枚举的代码并测试。
// 增强 for 循环
for (Week day : Week.values()) {
// 在main()里,编写输出Wed对应描述值的代码并测试。
System.out.println(day + "(" + day.getIndex() + ")");
}
}
}
参考书目:吴志祥《JAVA编程技术》
本文介绍了Java枚举类型,它是JDK 1.5引入的新特性,被enum关键字修饰,继承自Enum类型,具有简洁性、安全性和便捷性。还说明了枚举的使用场景,如定义常量等。同时给出了一个反映一周七天的枚举类型实验,包含代码参考和测试结果。
4703

被折叠的 条评论
为什么被折叠?



