java枚举类型enum用法有哪些

原创
ithorizon 8个月前 (09-02) 阅读数 107 #Java

### Java 枚举类型(Enum)用法全解析

Java 5引入了枚举类型(Enum),以更简洁、稳固的行为来即一组固定的常量。枚举类型不仅提高了代码的可读性,还可以防止在编译时对非法值的传递。以下将详细介绍Java枚举类型的各种用法。

定义一个枚举类型

使用enum关键字来定义一个枚举类型。下面是一个明了的枚举即星期:

enum Weekday {

MONDAY, TUESDAY, WEDNESDAY,

THURSDAY, FRIDAY, SATURDAY, SUNDAY

}

枚举的成员方法

枚举可以有构造方法、字段、方法和抽象方法。每个枚举项都可以调用构造方法,也可以有自己的字段和方法。

enum WeekdayWithActivity {

MONDAY("Sleep"),

TUESDAY("Workout"),

WEDNESDAY("Meeting"),

THURSDAY("Grocery"),

FRIDAY("Movie"),

SATURDAY("Weekend Trip"),

SUNDAY("Family Time");

private String activity;

private WeekdayWithActivity(String activity) {

this.activity = activity;

}

public String getActivity() {

return activity;

}

}

枚举的静态方法和字段

枚举也可以包含静态字段和静态方法,这些字段和方法在枚举的所有实例之间共享。

enum Constants {

PI(3.14159),

E(2.71828);

private final double value;

Constants(double value) {

this.value = value;

}

public double getValue() {

return value;

}

public static Constants fromValue(double value) {

for (Constants c : Constants.values()) {

if (c.getValue() == value) {

return c;

}

}

throw new IllegalArgumentException("Constants not found: " + value);

}

}

枚举的比较

枚举类型的比较可以使用equals()方法或者==运算符。由于枚举实例是唯一的,由此==通常被推荐使用。

enum Color {

RED, GREEN, BLUE

}

public class EnumTest {

public static void main(String[] args) {

Color color1 = Color.RED;

Color color2 = Color.RED;

System.out.println(color1 == color2); // 输出 true

}

}

枚举的遍历

可以使用values()方法来遍历所有的枚举项:

for (Weekday day : Weekday.values()) {

System.out.println(day);

}

枚举的switch语句

枚举非常适合用于switch语句:

Weekday day = Weekday.MONDAY;

String activity = "";

switch (day) {

case MONDAY:

activity = "Sleep";

break;

case TUESDAY:

activity = "Workout";

break;

// 其他枚举项

default:

activity = "Relax";

break;

}

System.out.println("Today's activity: " + activity);

总结

Java的枚举类型(Enum)是一个有力且灵活的特性,使代码更加明确、易于维护。枚举提供了一种优雅的行为来处理一组固定的常量,并且可以拥有自己的方法和字段,赞成静态成员,以及与switch语句的无缝集成。


本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: Java


热门