Конструктор enum в Java
У перечисления может быть один или несколько конструкторов,
но вызывать их снаружи нельзя: конструктор по умолчанию
имеет модификатор private (его можно не писать).
Параметры передают в круглых скобках сразу после имени
константы:
enum PostStatus {
DRAFT("Draft post"),
PUBLISHED("Live post"),
ARCHIVED("Archived post");
private final String caption;
PostStatus(String caption) {
this.caption = caption;
}
public String getCaption() {
return caption;
}
}
Возьмем константу DRAFT и выведем текст ее подписи:
System.out.println(PostStatus.DRAFT.getCaption());
После последней константы, у которой есть аргументы или после списка констант без аргументов, ставят точку с запятой, если дальше в теле enum идут поля, конструкторы или методы. Без точки с запятой компилятор воспримет следующую строку как ещё одну константу:
System.out.println(PostStatus.DRAFT.isDraft());
Конструктор может принимать несколько параметров - для каждой константы передают свой набор значений:
System.out.println(PostStatus.PUBLISHED.isVisible());
Объявите enum EmployeeType с конструктором,
принимающим String title:
INTERN - "intern",
STAFF - "staff".
Выведите заголовок для EmployeeType.STAFF.
Объявите enum Role с конструктором
Role(int access):
GUEST(0), USER(5), ADMIN(10).
Сохраните Role.USER в переменную и выведите
значение access.