在Java中,枚举(Enum)是一种特殊的数据类型,用于表示一组固定的常量。枚举类型使得代码更加清晰、类型安全,并减少了错误的可能性。枚举通常用于表示一组相关的常量,比如一周的七天、交通信号灯的颜色等。
以下是一些关于Java中枚举的关键点:
-
定义枚举:
使用enum关键字来定义枚举类型。例如,定义一个表示一周七天的枚举:java复制代码public enum Day {MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY} -
使用枚举:
枚举类型可以像其他数据类型一样使用。例如,定义一个变量并赋值:java复制代码Day today = Day.MONDAY; -
枚举的方法和构造函数:
枚举类型可以有字段、方法和构造函数。每个枚举常量实际上是枚举类的一个实例。例如:java复制代码public enum Planet {MERCURY(3.303e+23, 2.4397e6),VENUS(4.869e+24, 6.0518e6),EARTH(5.976e+24, 6.37814e6),MARS(6.421e+23, 3.3972e6);private final double mass; // in kilogramsprivate final double radius; // in meters// Universal gravitational constant (m3 kg-1 s-2)public static final double G = 6.67300E-11;// ConstructorPlanet(double mass, double radius) {this.mass = mass;this.radius = radius;}public double mass() { return mass; }public double radius() { return radius; }// Universal formula for surface gravitypublic double surfaceGravity() {final double sr = radius * radius;return G * mass / sr;}public double surfaceWeight(double otherMass) {// F = mareturn otherMass * surfaceGravity();}public static void main(String[] args) {double earthWeight = 175;double mass = earthWeight / EARTH.surfaceGravity();for (Planet p : Planet.values()) {System.out.printf("Your weight on %s is %f%n",p, p.surfaceWeight(mass));}}} -
枚举的内置方法:
values():返回包含所有枚举常量的数组。name():返回枚举常量的名称。ordinal():返回枚举常量在声明中的位置(从0开始)。toString():通常返回枚举常量的名称,与name()方法相同。
例如:
java复制代码Day[] days = Day.values();for (Day day : days) {System.out.println(day.name());} -
枚举的switch语句:
枚举类型非常适合用在switch语句中,因为枚举常量的数量是固定的,这提高了代码的可读性和安全性。java复制代码switch (today) {case MONDAY:System.out.println("Today is Monday!");break;case FRIDAY:System.out.println("Today is Friday!");break;default:System.out.println("It's another day.");break;} -
枚举的迭代:
可以使用for-each循环来迭代枚举类型的所有常量。java复制代码for (Day day : Day.values()) {System.out.println(day);}
总结来说,Java中的枚举(Enum)是一种强大的工具,用于定义和使用一组相关的常量,并且支持方法和构造函数,使得枚举类型可以包含更多的行为和状态。
826

被折叠的 条评论
为什么被折叠?



