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枚举的常见用法,包括定义、遍历、实现接口、包含其他属性和方法等,选择适当的方法取决于具体的应用场景。