java - 枚举作为一个类(class)?

标签 java class object enums

<分区>

我写了一个测试类,我正在尝试 enum 类型:

public class EnumTest { 
   enum Car{MERCEDEZ, FERRARI};

   public static void main(String[] args) {     
      Car carObj;
      carObj.run();
   }
}

所以我似乎可以使用 enum 来“声明”一个类(因为我的包中没有 Car 类),并且我将方法 run() 看看会发生什么。之后,我按照 IDE 的建议编写了 run() 主体,但也在 enum 中。

enum Car {
   MERCEDEZ, FERRARI;

      public void run() {   
      }
   };

我觉得这很奇怪,但是没关系。我继续我的科学怪人实验并尝试在 main 上使用构造函数初始化对象。

enum Car {
        MERCEDEZ, FERRARI;
        public void run() {
            // TODO Auto-generated method stub

        };
        Car(){}
    };

Car carObj = new Car();

而且它说我不能实例化EnumTest.Car类型,所以我的测试完成了,但有疑问。对不起,如果它看起来很愚蠢,但我没有在我的搜索中找到它。

问题:为什么我可以“像”一个类一样使用 Car,但我无法初始化它?

最佳答案

您声明的 Car 是一个嵌套的 enum

它嵌套在您的 EnumTest 类中,并绑定(bind)到它的实例。

您不能像初始化类那样初始化枚举。

但是,您可以声明绑定(bind)到每个 enum 实例的方法,例如 run 方法。

关于java - 枚举作为一个类(class)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31970275/

相关文章:

Java 输入流/XSL 线程安全

python - 如何为此方法编写单元测试

jQueryeach不会对对象中的每个元素执行html

java - 不确定,但我认为 eclipse 不会在 tomcat 服务器上运行我的应用程序

java - 这两种方法在 java 中 sleep 执行的区别

c++ - 如何使用指向成员函数的指针进行切换?

python类属性

C++ : How does creating an object on stack within a loop works under the hood?

javascript - 在下拉 javascript 中显示选定的选项

java - LMAX Disruptor - 什么决定了批量大小?