Защо enum конструкторът е частен?
Защо enum конструкторът е частен?

Видео: Защо enum конструкторът е частен?

Видео: Защо enum конструкторът е частен?
Видео: Java для начинающих. Урок 48: Enum (Перечисления). 2024, Декември
Anonim

Всъщност не можете да имате публика enum конструктор . Имате нужда от това конструктор да бъде частен , защото изброява дефинирайте краен набор от стойности (например EN_US, EN_UK, FR_FR, FR_BE). Ако конструктор публичните хора биха могли потенциално да създават повече стойности (например невалидни/недекларирани стойности като XX_KK и т.н.).

По отношение на това, enum може ли да има конструктор?

Това е така, защото enum is Java съдържа фиксирани константни стойности. Така че няма смисъл да има публични или защитени конструктор тъй като не можете да създадете екземпляр на enum . Също така имайте предвид, че вътрешно enum се преобразува в клас, както е по-долу. Тъй като ние мога не създавай enum обекти изрично следователно ние мога не призовавай enum конструктор директно.

Също така, каква е разликата между enum конструктор и обикновен конструктор на клас? За да отговоря на въпроса: по същество няма разлика между двата подхода. Въпреки това, enum construct ви предоставя някои допълнителни поддържащи методи като values(), valueOf() и т.н., които ще трябва да напишете сами с клас -с-частен- конструктор Приближаване.

Освен това, каква е целта на enums?

В enum се използва за деклариране на списък с именувани целочислени константи. Може да се дефинира с помощта на enum ключова дума директно в пространство от имена, клас или структура. В enum се използва за даване на име на всяка константа, така че константата да може да бъде препратена с нейното име. пример: enum.

Могат ли да бъдат инстанцирани enums?

Енуми не поддържа публични конструктори и следователно не може да бъде инстанциран . Енуми са за, когато имате фиксиран набор от свързани константи. Точно един случай ще да бъдат създадени за всеки enum постоянен.

Препоръчано: