Как переводятся перечисления во время компиляции и как создаются объектыJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как переводятся перечисления во время компиляции и как создаются объекты

Сообщение Anonymous »

Код: Выделить всё

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

Но как создаются объекты, когда я передаю значение вместе с именем, потому что для меня они просто выглядят как вызовы методов. Бывший. vanilla(100) здесь для ванили цена 100, но как она на самом деле создается? Я вообще этого не понимаю. Пожалуйста помогите :(
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»