Java枚举是一种特殊的数据类型,用于表示一组具名的常量,下面详解常见的8种Java枚举方式@mikechen
1. 基本枚举类型
在Java中,使用 enum
关键字定义一个枚举类型。
- public enum Day {
- SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
- }
2. 带有值的枚举
每个枚举常量都有一个关联的值,通过构造方法初始化。
如下所示:
- public enum Day {
- SUNDAY("Sun"), MONDAY("Mon"), TUESDAY("Tue"), WEDNESDAY("Wed"),
- THURSDAY("Thu"), FRIDAY("Fri"), SATURDAY("Sat");
- private final String abbreviation;
- private Day(String abbreviation) {
- this.abbreviation = abbreviation;
- }
- public String getAbbreviation() {
- return abbreviation;
- }
- }
3.Switch语句使用枚举
枚举类型在 switch
语句中非常有用,如下所示:
- Day today = Day.MONDAY;
- switch (today) {
- case MONDAY:
- System.out.println("It's Monday!");
- break;
- case TUESDAY:
- System.out.println("It's Tuesday!");
- break;
- // 其他case...
- default:
- System.out.println("It's some other day.");
- break;
- }
4.实现接口的枚举
枚举类型可以实现接口,为每个枚举常量提供不同的实现。
如下所示:
- public enum Operation implements MathOperation {
- ADD {
- @Override
- public int apply(int x, int y) {
- return x + y;
- }
- },
- SUBTRACT {
- @Override
- public int apply(int x, int y) {
- return x - y;
- }
- },
- // 其他枚举常量...
- }
5.枚举的遍历
通过 values() 方法,可以遍历枚举的所有常量。
如下所示:
- for (Day day : Day.values()) {
- System.out.println(day);
- }
6.特点方法枚举
枚举类型可以包含常量特定的方法,这些方法在每个枚举常量上提供不同的实现。
如下所示:
- public enum Operation {
- ADD {
- @Override
- public int apply(int x, int y) {
- return x + y;
- }
- },
- SUBTRACT {
- @Override
- public int apply(int x, int y) {
- return x - y;
- }
- },
- // 其他枚举常量...
- }
7.获取枚举常量的顺序
ordinal() 方法返回枚举常量在枚举中的位置,从0开始计数。
如下所示:
- int position = Day.MONDAY.ordinal(); // 返回 MONDAY 在枚举中的位置,从0开始计数
8.获取枚举常量的名称
name() 方法返回枚举常量的名称,如下所示:
- String dayName = Day.MONDAY.name(); // 返回枚举常量的名称,例如 "MONDAY"
以上是关于Java枚举的常见用法,包括定义、遍历、实现接口、包含其他属性和方法等,选择适当的方法取决于具体的应用场景。