📜  比较Java中的枚举成员(1)

📅  最后修改于: 2023-12-03 15:26:54.348000             🧑  作者: Mango

Java中的枚举成员

在Java中,枚举是一种特殊的数据类型,它可以列举出一系列的常量,并为这些常量赋予一个有意义的名称。

创建枚举类型

以下是创建枚举类型的语法:

enum EnumName {
   CONSTANT1, CONSTANT2, ..., CONSTANTN;
}

其中,EnumName是枚举类型的名称,而CONSTANT1, CONSTANT2, ..., CONSTANTN则是枚举成员,它们都必须是大写字母。

以下是一个简单的枚举类型的例子:

enum Color {
   RED, GREEN, BLUE;
}

在这个例子中,Color是枚举类型的名称,而RED, GREEN, BLUE则是它的三个枚举成员。这个枚举类型表示了三种颜色:红色、绿色、蓝色。

访问枚举成员

枚举成员可以通过枚举类型来访问,例如:

Color red = Color.RED;

这样就可以得到RED这个枚举成员。

当然,也可以通过枚举成员的名字来访问它:

Color red = Color.valueOf("RED");

这个方法返回的结果和上面的方法是一样的。

比较枚举成员

在Java中,可以使用==equals()方法来比较枚举成员。

例如,下面这个代码比较了两个枚举成员:

Color red = Color.RED;
Color blue = Color.BLUE;

if (red == blue) {
   System.out.println("red == blue");
} else {
   System.out.println("red != blue");
}

if (red.equals(blue)) {
   System.out.println("red equals blue");
} else {
   System.out.println("red not equals blue");
}

上面这个代码输出的结果是:

red != blue
red not equals blue

因为REDBLUE是不同的枚举成员,所以它们不相等。

注意,枚举成员的比较是基于它们在枚举类型中的顺序进行的,而不是它们的名称。

示例代码

以下是一个完整的示例代码,十分详细地介绍了枚举成员的创建、访问和比较:

public class EnumExample {
   enum Color {
      RED, GREEN, BLUE;
   }

   public static void main(String[] args) {
      // 创建枚举成员
      Color red = Color.RED;
      Color green = Color.GREEN;
      Color blue = Color.BLUE;

      // 访问枚举成员
      System.out.println("red = " + red);
      System.out.println("green = " + green);
      System.out.println("blue = " + blue);

      // 比较枚举成员
      if (red == blue) {
         System.out.println("red == blue");
      } else {
         System.out.println("red != blue");
      }

      if (red.equals(blue)) {
         System.out.println("red equals blue");
      } else {
         System.out.println("red not equals blue");
      }

      if (red == Color.RED) {
         System.out.println("red == Color.RED");
      } else {
         System.out.println("red != Color.RED");
      }

      if (green.equals(Color.GREEN)) {
         System.out.println("green equals Color.GREEN");
      } else {
         System.out.println("green not equals Color.GREEN");
      }
   }
}

输出结果为:

red = RED
green = GREEN
blue = BLUE
red != blue
red not equals blue
red == Color.RED
green equals Color.GREEN
总结

枚举是一种很有用的数据类型,它可以使代码更加清晰、易读,而且还可以避免使用魔法数。在使用枚举时,要注意不同的枚举成员是不相等的,比较时应该使用==equals()方法。