Miks on enum konstruktor privaatne?
Miks on enum konstruktor privaatne?

Video: Miks on enum konstruktor privaatne?

Video: Miks on enum konstruktor privaatne?
Video: Java SE. Урок 20. Перечисления enum 2024, November
Anonim

Teil ei saa tegelikult olla avalikkust enum konstruktor . Teil on seda vaja konstruktor olla privaatne , sest enums määratleda piiratud väärtuste kogum (näiteks EN_US, EN_UK, FR_FR, FR_BE). Kui konstruktor kas avalikud inimesed võiksid potentsiaalselt luua rohkem väärtusi (näiteks kehtetud/deklareerimata väärtused nagu XX_KK jne).

Seoses sellega, kas enumil võib olla konstruktorit?

See on sellepärast, et enum kas Java sisaldab fikseeritud konstantseid väärtusi. Seega pole mõtet omada avalikku ega kaitstud konstruktor nagu te ei saa eksemplari luua enum . Pange tähele ka seda sisemiselt enum teisendatakse klassiks nagu allpool. Nagu me saab ära loo enum objektid, seega meie saab ära kutsu enum konstruktor otse.

Samuti, mis vahe on enum-konstruktoril ja tavalisel klassikonstruktoril? Küsimusele vastamiseks: sisuliselt pole vahet kaks lähenemist. Kuid, enum construct pakub teile mõningaid täiendavaid tugimeetodeid, nagu väärtused(), valueOf() jne, mille peate ise kirjutama klass -privaatselt- konstruktor lähenemine.

Peale selle, mis on enumite eesmärk?

The enum kasutatakse nimeliste täisarvude konstantide loendi deklareerimiseks. Seda saab määratleda kasutades enum märksõna otse nimeruumis, klassis või struktuuris. The enum kasutatakse igale konstandile nime andmiseks, et konstantsele täisarvule saaks viidata selle nime kasutades. Näide: enum.

Kas enumeid saab instantseerida?

Enums ei toeta avalikke ehitajaid ja seega ei saa seda olla instantseeritud . Enums on mõeldud siis, kui teil on fikseeritud seotud konstantide komplekt. Täpselt üks juhtum tahe luuakse igaühe jaoks enum konstantne.

Soovitan: