waixiong 发表于 2022-12-31 21:14:33

有关枚举类的问题

enum Color{
    RED,GREEN,BLUE;
    private Color(){
      System.out.println("Constructor called for : " + this.toString());
    }
    public void colorInfo(){
      System.out.println("UniversalColor");
    }

}
public class class_01 {
    public static void main(String[] args) {
      Color c1 = Color.RED;
      System.out.println(c1);
    }

}


代码如上,问题如下:
为啥主函数里面,会连续打印三次枚举类的构造方法,不是才调用了一次而已吗

一颗yan 发表于 2022-12-31 21:14:34

枚举跟普通类一样可以用自己的变量、方法和构造函数,构造函数只能使用 private 访问修饰符,所以外部无法调用。
枚举既可以包含具体方法,也可以包含抽象方法。 如果枚举类具有抽象方法 (代码里的Color()),则枚举类的每个实例都必须实现它。
简单的说,如果枚举里有4个参数,调用这个类的时候就会跑4遍抽象方法
页: [1]
查看完整版本: 有关枚举类的问题