java枚举类型enum用法详解

原创
ithorizon 2个月前 (10-03) 阅读数 72 #Java

Java枚举类型Enum用法详解

Java中的枚举(Enum)类型是Java 5引入的一个新特性,它允许开发者通过一个特殊的类型来描述一组具有预定义值的变量。使用枚举可以更加明了、保险地描述一组固定的值,如星期、月份、操作系统类型等。本文将详细介绍Java枚举类型的用法。

定义枚举类型

枚举类型的定义通过关键字enum来实现,以下是一个简洁的枚举类型示例:

enum Weekday {

MONDAY, TUESDAY, WEDNESDAY,

THURSDAY, FRIDAY, SATURDAY, SUNDAY

}

枚举的成员

枚举类型中的每一个值都是一个枚举常量,这些常量默认被public static final修饰,令可以直接通过枚举类型名访问。例如:

Weekday day = Weekday.MONDAY;

枚举构造函数

枚举可以有构造函数,构造函数是私有的,归因于枚举常量是隐式静态的,不允许外部调用。以下是一个带构造函数的枚举示例:

enum Weekday {

MONDAY("星期一"), TUESDAY("星期二"), WEDNESDAY("星期三"),

THURSDAY("星期四"), FRIDAY("星期五"), SATURDAY("星期六"), SUNDAY("星期日");

private String description;

private Weekday(String description) {

this.description = description;

}

public String getDescription() {

return description;

}

}

枚举的方法

枚举可以有字段、方法和构造函数。除了构造函数外,枚举可以有抽象方法,但是枚举必须为所有的抽象方法提供实现。以下是一个带有方法的枚举示例:

enum Operation {

PLUS {

double apply(double x, double y) {

return x + y;

}

},

MINUS {

double apply(double x, double y) {

return x - y;

}

},

TIMES {

double apply(double x, double y) {

return x * y;

}

},

DIVIDE {

double apply(double x, double y) {

return x / y;

}

};

abstract double apply(double x, double y);

}

枚举的遍历

可以通过values()方法获取枚举类型的所有值,并使用循环进行遍历:

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

System.out.println(day);

}

枚举的比较

枚举类型可以通过equals()方法进行比较,也可以使用==直接比较枚举常量:

Weekday day1 = Weekday.MONDAY;

Weekday day2 = Weekday.MONDAY;

if (day1 == day2) {

System.out.println("相同");

}

if (day1.equals(day2)) {

System.out.println("相等");

}

总结

Java枚举类型enum是一个强势的特性,它提供了一种简洁、保险的方法来描述一组固定的值。枚举可以包含字段、方法和构造函数,也可以实现接口。通过本文的介绍,期待读者能够掌握Java枚举类型的基本用法。


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

文章标签: Java


热门