De ce este privat constructorul enum?
De ce este privat constructorul enum?

Video: De ce este privat constructorul enum?

Video: De ce este privat constructorul enum?
Video: #70 Enum Class in Java 2024, Decembrie
Anonim

De fapt, nu poți avea un public constructor enum . Ai nevoie de asta constructor a fi privat , deoarece enumerari definiți un set finit de valori (de exemplu EN_US, EN_UK, FR_FR, FR_BE). Dacă constructor dacă oamenii publici ar putea crea mai multe valori (de exemplu, valori invalide/nedeclarate, cum ar fi XX_KK etc.).

În ceea ce privește acest lucru, enumerarea poate avea un constructor?

Asta pentru ca enumerare este Java conține valori constante fixe. Deci, nu are rost să fie public sau protejat constructor deoarece nu puteți crea instanță de enumerare . De asemenea, rețineți că pe plan intern enumerare este convertit în clasă ca mai jos. Așa cum am poate sa nu creați enumerare obiecte în mod explicit deci noi poate sa nu invoca constructor enum direct.

De asemenea, care este diferența dintre un constructor de enumerare și un constructor de clasă obișnuită? Pentru a răspunde la întrebare: în esență, nu există diferență între cele două abordări. In orice caz, enumerare construct vă oferă câteva metode suplimentare de sprijin, cum ar fi values(), valueOf() etc. pe care ar trebui să le scrieți singur cu clasă -cu-privat- constructor abordare.

Pe lângă aceasta, care este scopul enumărilor?

The enumerare este folosit pentru a declara o listă de constante numere întregi. Poate fi definit folosind enumerare cuvânt cheie direct în interiorul unui spațiu de nume, clasă sau structură. The enumerare este folosit pentru a da un nume fiecărei constante, astfel încât întregul constant să poată fi referit folosind numele său. Exemplu: enumerare.

Pot fi instanțiate enumerarile?

Enumări nu suportă constructorii publici și, prin urmare, nu poate fi instanţiat . Enumări sunt pentru atunci când aveți un set fix de constante înrudite. Exact un exemplu voi fi creat pentru fiecare enumerare constant.

Recomandat: