枚举类
枚举类型是一个特殊的类,一般用来表示一组常量,例如一年的四季。枚举类使用关键字 enum 来定义。各个常量通过逗号分隔,最后一个常量后面可以加逗号,也可以不加。
Java 枚举类型的基本用法如下:
enum Season {
SPRING, SUMMER, AUTUMN, WINTER;
}上面代码定义了一个枚举类型 Season,它有 4 个常量 SPRING、SUMMER、AUTUMN、WINTER。枚举类型的常量是静态的,可以通过枚举类型直接访问。
System.out.println(Season.SPRING); // SPRING
System.out.println(Season.SUMMER); // SUMMER比较枚举类型
使用 enum 定义的枚举类型是一种引用类型,而对于引用类型的比较,要使用equals()方法,不能使用==。==比较的是两个引用类型的引用是否是同一个对象。因此,引用类型的比较要使用equals()方法。但是,对于枚举类型,我们可以直接使用==来比较两个枚举类型的值是否相等。
Season s1 = Season.SPRING;
Season s2 = Season.SPRING;
System.out.println(s1 == s2); // true方法
name() 方法
name() 方法返回枚举常量的名称,返回值是一个字符串。
System.out.println(Season.SPRING.name()); // SPRINGvalues() 方法
values() 方法返回一个包含所有枚举常量的数组。
Season[] values = Season.values();
for (Season value : values) {
System.out.println(value);
}valueOf() 方法
valueOf() 方法返回指定名称的枚举常量。
Season season = Season.valueOf("SPRING");
System.out.println(season); // SPRINGordinal() 方法
ordinal() 方法返回枚举常量的序号,从 0 开始。
System.out.println(Season.SPRING.ordinal()); // 0
System.out.println(Season.SUMMER.ordinal()); // 1
System.out.println(Season.AUTUMN.ordinal()); // 2
System.out.println(Season.WINTER.ordinal()); // 3compareTo() 方法
compareTo() 方法用于比较两个枚举常量的顺序。
System.out.println(Season.SPRING.compareTo(Season.SUMMER)); // -1
System.out.println(Season.SUMMER.compareTo(Season.SPRING)); // 1
System.out.println(Season.SUMMER.compareTo(Season.SUMMER)); // 0枚举内部成员
枚举跟普通类一样,可以拥有自己的变量,方法和构造方法。但是,构造方法只能是 private 访问权限。字段建议声明为 final 类型。
enum Season {
SPRING("春天", "spring"),
SUMMER("夏天", "summer"),
AUTUMN("秋天", "autumn"),
WINTER("冬天", "winter");
private final String english;
private final String chinese;
private Season(String chinese, String english) {
this.chinese = chinese;
this.english = english;
}
public String getChinese() {
return chinese;
}
public String getEnglish() {
return english;
}
}最后更新于
这有帮助吗?