Hvorfor er enum constructor privat?
Hvorfor er enum constructor privat?

Video: Hvorfor er enum constructor privat?

Video: Hvorfor er enum constructor privat?
Video: Публичное собеседование: Junior Java Developer. Пример, как происходит защита проекта после курсов. 2024, Kan
Anonim

Du kan faktisk ikke have en offentlighed enum konstruktør . Du har brug for dette konstruktør at være privat , fordi optællinger definere et begrænset sæt værdier (for eksempel EN_US, EN_UK, FR_FR, FR_BE). Hvis konstruktør var offentlige mennesker potentielt kunne skabe flere værdier (for eksempel ugyldige/ikke-erklærede værdier som XX_KK osv.).

Med hensyn til dette, kan enum have en konstruktør?

Dette er fordi enum er Java indeholder faste konstante værdier. Så der er ingen mening i at have offentlig eller beskyttet konstruktør som du ikke kan oprette instans af enum . Bemærk også det internt enum er konverteret til klasse som nedenfor. Som vi kan ikke skabe enum objekter eksplicit derfor vi kan ikke påberåbe sig enum konstruktør direkte.

Hvad er forskellen mellem en enum-konstruktør og en almindelig klassekonstruktør? For at besvare spørgsmålet: i det væsentlige er der nej forskel mellem de to tilgange. Imidlertid, enum konstruktion giver dig nogle yderligere understøttende metoder som values(), valueOf() osv., som du skal skrive på egen hånd med klasse -med-privat- konstruktør nærme sig.

Udover dette, hvad er formålet med enums?

Det enum bruges til at erklære en liste over navngivne heltalskonstanter. Det kan defineres ved hjælp af enum nøgleord direkte inde i et navneområde, klasse eller struktur. Det enum bruges til at give et navn til hver konstant, så det konstante heltal kan henvises til dets navn. Eksempel: enum.

Kan enums instansieres?

Enums understøtter ikke offentlige konstruktører og kan derfor ikke være det instansieret . Enums er til, når du har et fast sæt af relaterede konstanter. Præcis ét tilfælde vilje skabes til hver enum konstant.

Anbefalede: