Hvorfor er enum-konstruktør privat?
Hvorfor er enum-konstruktør privat?

Video: Hvorfor er enum-konstruktør privat?

Video: Hvorfor er enum-konstruktør privat?
Video: Перегрузка конструкторов класса. Что такое перегрузка. Как перегрузить конструктор. Урок#79 2024, November
Anonim

Du kan faktisk ikke ha en offentlighet enum konstruktør . Du trenger dette konstruktør å være privat , fordi opptegnelser definere et begrenset sett med verdier (for eksempel EN_US, EN_UK, FR_FR, FR_BE). Hvis konstruktør var offentlige personer potensielt kunne skape flere verdier (for eksempel ugyldige/ikke-erklærte verdier som XX_KK, etc).

Angående dette, kan enum ha en konstruktør?

Dette er fordi enum er Java inneholder faste konstantverdier. Så det er ingen vits i å ha offentlig eller beskyttet konstruktør som du ikke kan lage forekomst av enum . Vær også oppmerksom på det internt enum er konvertert til klasse som nedenfor. Som vi kan ikke skape enum objekter eksplisitt derav vi kan ikke påkalle enum konstruktør direkte.

Dessuten, hva er forskjellen mellom en enum-konstruktør og en vanlig klassekonstruktør? For å svare på spørsmålet: i hovedsak er det nei forskjell mellom de to tilnærmingene. Derimot, enum konstruksjon gir deg noen ekstra støttemetoder som values(), valueOf() osv. som du må skrive på egen hånd med klasse -med-privat- konstruktør nærme seg.

Ved siden av dette, hva er hensikten med enums?

De enum brukes til å deklarere en liste over navngitte heltallskonstanter. Det kan defineres ved hjelp av enum nøkkelord direkte i et navneområde, klasse eller struktur. De enum brukes til å gi et navn til hver konstant slik at det konstante heltall kan refereres til ved å bruke navnet. Eksempel: enum.

Kan enums instansieres?

Enums støtter ikke offentlige konstruktører og kan derfor ikke være det instansiert . Enums er for når du har et fast sett med relaterte konstanter. Nøyaktig ett tilfelle vil opprettes for hver enum konstant.

Anbefalt: