你可以认为是这样的:public class Test { enum Single { GREEN("1"), YELLOW("2"), RED("3"); String value; Single(String s) { this.value = s; } } public static void main(String[] args) { System.out.println(Single.GREEN.value); System.out.println(Single1.GREEN.value); } public static class Single1 { public final String value; public static Single1 GREEN = new Single1("1"); public static Single1 YELLOW = new Single1("2"); public static Single1 RED = new Single1("3"); private Single1(String s) { this.value = s; } }}
把該參數的值放在了value這個變數 然後你System.out.println(Single.GREEN.value);這句話 就會去取得你宣告的String value這個 變數裡面的值
this.value = s;
} } public static void main(String[] args) {
System.out.println(Single.GREEN.value);
System.out.println(Single1.GREEN.value);
} public static class Single1 { public final String value; public static Single1 GREEN = new Single1("1");
public static Single1 YELLOW = new Single1("2");
public static Single1 RED = new Single1("3"); private Single1(String s) {
this.value = s;
}
}}
GREEN,
YELLOW,
RED;
String value;
Single(){
this.value="123";
}
} 那么你可以认为每个实例调用了默认的构造函数Single(),然后每个enum实例都拥有自己的value属性。如果带参的就是像你的代码那样,那么自然是一个道理,他们各自调用了自己的带参构造函数,每个enum实例都拥有自己的value属性