enum icecream {
vanilla(100), strawberry(20);
int price;
icecream(int i) {
price = i;
}
}
我對如何在編譯時是如何枚舉在編譯時轉換以及如何對象創建
我看到一些例子,他們提到它像這樣
創建枚舉對象有點困惑public enum Flavor
{
COFFEE, VANILLA, CHOCOLATE, STRAWBERRY, RUM_RAISIN, PEACH
}
這被翻譯成(編譯時)
public final class Flavor
extends java.lang.Enum
{
public static final Flavor COFFEE = new Flavor("COFFEE", 0);
public static final Flavor VANILLA = new Flavor("VANILLA", 1);
// ...
}
鏈接:http://www.kdgregory.com/index.php?page=java.enum
但是,當我將一個值與名稱一起傳遞給我時,它們是如何創建的,它們就像方法調用一樣。 E.x.香草(100)在這裏爲香草的價格是100,但它是如何創建的?我沒有得到它。請幫忙:(
您已經很好地回答了問題(在問題中)。那麼你還不清楚什麼?枚舉按照您所描述的方式進行翻譯。被翻譯的代碼不清楚? – 2011-12-23 20:28:01
我對這個香草(100)感到困惑......這個100值如何初始化爲價格,因爲我稱之爲香草()而不是冰淇淋()構造函數 – Nav 2011-12-23 20:30:16
'public static final Flavor COFFEE = new Flavor(「COFFEE」,0 );'。你可以看到該對象是通過調用構造函數創建的。 – 2011-12-23 20:30:32