1.介绍
Java枚举类是一种特殊类型的类,它代表一组常量值,通常用于表示固定的、预定义的一组值。枚举类在Java中是一种非常有用的数据类型,它提供了更好的可读性和类型安全性,比起使用普通常量或整数等数据类型更具优势。在Java中,枚举类是通过enum
关键字定义的。
2.详细讲解
以下是Java枚举类的详细知识:
-
定义枚举类:
通过
enum
关键字可以定义一个枚举类。枚举类的实例是常量,通常用大写字母表示。enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }
-
枚举常量:
在枚举类中定义的常量称为枚举常量,它们是枚举类的实例。每个枚举常量都是唯一的,代表了枚举类中的一个固定值。
Day today = Day.MONDAY;
-
枚举方法:
枚举类可以定义方法,可以在枚举常量中为每个值添加自定义的行为。
enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY; public String getDayName() { switch (this) { case MONDAY: return "Monday"; case TUESDAY: return "Tuesday"; // 其他枚举常量的处理 default: return "Unknown"; } } }
-
枚举构造函数和字段:
枚举类可以有构造函数,但构造函数只能是私有的。枚举常量在定义时就会调用私有构造函数来创建实例。
enum Day { MONDAY("Mon"), TUESDAY("Tue"), WEDNESDAY("Wed"), THURSDAY("Thu"), FRIDAY("Fri"), SATURDAY("Sat"), SUNDAY("Sun"); private final String abbreviation; private Day(String abbreviation) { this.abbreviation = abbreviation; } public String getAbbreviation() { return abbreviation; } }
-
使用枚举类:
可以通过枚举常量来访问枚举类的成员。
Day today = Day.MONDAY; System.out.println(today); // 输出 "MONDAY" System.out.println(today.getDayName()); // 输出 "Monday" System.out.println(today.getAbbreviation()); // 输出 "Mon"
-
name():返回常量值
-
ordinal():返回定义的常量的顺序,从0开始计数
如下图所示:
{% asset_img image-20230801151543493.png %}
- 枚举的其他特性:
- 枚举类可以实现接口,让枚举常量具有接口中定义的行为。
- 可以在枚举类中定义抽象方法,然后为每个枚举常量提供具体实现。
- 枚举类可以用在
switch
语句中,代替常规的整数或字符型数据。
总结来说,Java枚举类是一种非常方便的数据类型,可以帮助我们定义一组固定的常量值,并为每个值提供自定义的行为。使用枚举类可以使代码更加清晰、可读,并提高代码的类型安全性。