解释一下在 Java 中使用枚举的限制?\

java 8object oriented programmingprogramming更新于 2024/11/11 20:42:00

Java 中的枚举 (enum) 是一种存储一组常量值的数据类型。您可以使用枚举来存储固定值,例如一周中的天数、一年中的月份等。

您可以使用关键字 enum 定义枚举,后跟枚举的名称 −

enum Days {
   SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}

注意事项

声明枚举时,需要牢记以下几点 −

  • 建议将常量的名称全部大写,如下所示 −
public class EnumerationExample {
   enum Days {
      SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
   }
}
  • 您可以在类内部定义枚举。

示例

public class EnumerationExample {
   enum Days {
      Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
   }
   public static void main(String args[]) {
      Days constants[] = Days.values();
      System.out.println("Value of constants: ");
      for(Days d: constants) {
         System.out.println(d);
      }
   }
}

输出

Value of constants:
SUNDAY
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY
  • 枚举中可以包含变量和方法,例如 −
enum Vehicles {
   Activa125, Activa5G, Access125, Vespa, TVSJupiter;
   int i; //变量
   Vehicles() { //构造函数
      System.out.println("枚举的构造函数");
   }
   public void enumMethod() {//方法
      System.out.println("这是一个枚举方法");
   }
}

但是,枚举的第一行必须始终是常量的声明,如果您编写任何其他内容,则会产生编译时错误−

enum Vehicles {
    int i; //变量
    Activa125, Activa5G, Access125, Vespa, TVSJupiter;
    Vehicles() { //构造函数
        System.out.println("枚举的构造函数");
    }
    public void enumMethod() {//方法
        System.out.println("这是一个枚举方法");
    }
}

编译时错误

Vehicles.java:1: error: <identifier> expected
enum Vehicles {
   ^
Vehicles.java:2: error: ',', '}', or ';' expected
int i; //variable
^
Vehicles.java:3: error: <identifiergt; expected
Activa125, Activa5G, Access125, Vespa, TVSJupiter;
^
3 errors
  • 您不能在方法内定义枚举。如果您尝试这样做,将生成编译时错误,提示: “enum types must not be local”
public class EnumExample{
   public void sample() {
      enum Vehicles {
         Activa125, Activa5G, Access125, Vespa, TVSJupiter;
      }
   }
}

编译时错误

EnumExample.java:3: error: enum types must not be local
enum Vehicles {
^
1 error

相关文章