Waarom is enum-konstruktor privaat?
Waarom is enum-konstruktor privaat?

Video: Waarom is enum-konstruktor privaat?

Video: Waarom is enum-konstruktor privaat?
Video: Enum java разбираем на примере. Добавляем конструктов и value / enum java 2024, November
Anonim

Jy kan nie eintlik 'n publiek hê nie enum konstruktor . Jy het dit nodig konstruktor om te wees privaat , omdat opsommings definieer 'n eindige stel waardes (byvoorbeeld EN_US, EN_UK, FR_FR, FR_BE). As die konstruktor was publieke mense moontlik meer waardes kon skep (byvoorbeeld ongeldige/onverklaarde waardes soos XX_KK, ens.).

Met betrekking tot hierdie, kan enum 'n konstruktor hê?

Dit is omdat opsomming is Java bevat vaste konstante waardes. Daar is dus geen sin om publiek of beskerm te hê nie konstruktor soos jy nie instansie van kan skep nie opsomming . Let ook daarop dat intern opsomming word omgeskakel na klas soos hieronder. Soos ons kan nie skep nie opsomming voorwerpe uitdruklik vandaar ons kan aanroep nie enum-konstruktor direk.

Ook, wat is die verskil tussen 'n enum-konstruktor en 'n gewone klaskonstruktor? Om die vraag te beantwoord: in wese is daar nee verskil tussen die twee benaderings. Maar opsomming konstruk bied jou 'n paar bykomende ondersteunende metodes soos waardes(), valueOf(), ens. wat jy op jou eie sal moet skryf met die klas -met-privaat- konstruktor benadering.

Behalwe dit, wat is die doel van enums?

Die opsomming word gebruik om 'n lys van benoemde heelgetalkonstantes te verklaar. Dit kan gedefinieer word met behulp van die opsomming sleutelwoord direk binne 'n naamruimte, klas of struktuur. Die opsomming word gebruik om 'n naam aan elke konstante te gee sodat die konstante heelgetal met sy naam verwys kan word. Voorbeeld: opsomming.

Kan enums geïnstansieer word?

Opsommings ondersteun nie openbare bouers nie en kan dus nie wees nie geïnstansieer . Opsommings is vir wanneer jy 'n vaste stel verwante konstantes het. Presies een geval sal vir elkeen geskep word opsomming konstant.

Aanbeveel: