java - java枚举数据类型中的构造函数

标签 java

package myPackage;
enum CarDemo {
    MARUTI(1), SUXIKI(2),GALIOK(4);
    String st;
    int i;
    CarDemo(String st){
        this.st=st;
    }
    CarDemo(int i){
        this.i=i;
        System.out.println(i);
    }
}
public class Car{
        public static void main(String a[]){
            CarDemo s =CarDemo.MARUTI;  
        }
}

/当我执行这个程序并且它显示枚举常量的完整值时。在主方法中创建枚举类型期间是否调用了枚举构造函数三次?/

最佳答案

Enum Members (JLS-8.9.3) ,有这个(除其他事项外)要说 -

An enum constant is said to be created when the corresponding implicitly declared field is initialized.

因此,当您的 main() 运行并使用 CarDemo s = CarDemo.MARUTI; 初始化 s 时,所有成员都会创建

关于java - java枚举数据类型中的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24854291/

相关文章:

java - 将字符串数组转换为整数数组

Java/C 三元运算符

java - 为什么要在对象数组类中创建对象数组?

java - Hibernate 二级缓存似乎不起作用

java - 将 slf4j 与 log4j 结合使用。在 tomcat 中部署时未在文件中创建日志

java - 如何用字符分隔字符串?

java - 使Java父类不是接口(interface)的一部分

java - 使用 varargs 时是否会创建一个新数组?

java - 在 Scala 中使用从 Java 导入的不可变 "val"

java - 给定三个字符串,如何对它们进行排序?