Tre viktigste fordelene med ENUM

Tre viktigste fordelene med ENUM


De fleste programmerere vil tildele numeriske verdier til hvert element i en liste, slik som dagene i uken, for å gjøre koding raskere og unngå skrivefeil. Noen programmeringsspråk gi en enumeratoren type, eller enum, som lar deg definere et fast sett av konstanter i en spesiell type. Ved hjelp av en enum konstruksjon har flere fordeler, for eksempel forbedret type matching, evnen til å definere tilpassede metoder, tilgang til automatisk medlemmer som tilbys av kompilatoren, og generell økt lesbarhet og vedlikehold av programmet.

Fest Custom Metoder

Når du bruker enum typen, definerer du en ny klasse. Akkurat som med alle andre klasse, kan du inkludere tilpassede metoder og felt i klassen. Dette gjør det mulig å gi innkapslet funksjonalitet knyttet til enum type. For eksempel definerer følgende en klasse av enum type med gjennomsnittlig lengde- og breddegrad for amerikanske stater. Den inneholder en tilpasset metode, distanse, som beregner avstanden mellom breddegrad og lengdegrad sendes som parametere til metoden.

importere statisk java.lang.Math. *;
offentlig enum State {
AK (61,3850, -152,2683),
AL (32,7990, -86,8073),
...
WV (38,4680, -80,9696),
WY (42,7475, -107,2085);

private final double breddegrad;
private final double lengdegrad;
State (dobbel bredde, dobbel lengde) {
this.latitude = breddegrad;
this.longitude = lengdegrad;
}
privat dobbel bredde () {return breddegrad; }
privat dobbel lengde () {return lengde; }
private static final double R = 6371;

dobbel avstand (dobbel lat, dobbel lng) {
// Sfærisk lov cosinus
returnere cos (sin (breddegrad) sin (lat) + cos (breddegrad) cos (LAT) + cos (lng-lengdegrad)) * R;
}
}

Forbedret Type Matching

Fordi enum typen er en klasse, håndhever det typen matching for å inkludere matching mot et sett av konstanter definert i enum. Dette forhindrer feil ved å sikre at parametre til funksjoner vil alltid inneholde en verdi i enum typen klasse. For eksempel, hvis en funksjon krever en sesong som en parameter, gikk selve parameter til funksjonen under kjøring vil bli matchet mot de fire tillatte verdier definert av enum:

offentlig enum Sesong {VÅR, sommer, vinter, høst};
offentlig funksjon vær (enum Season) {
...
};

forbedret dokumentasjon

Den enum konstruksjonen gjør koden lettere å forstå og vedlikeholde. Ved å opprette en enum konstruere av medlemmer med meningsfulle navn, dokumentere du kode som du oppretter den. For eksempel, erklærte en enum kalt "Option" gjør det lett å forstå sakene i "bryteren" statement:

enum Option {lagre eller forkaste CANCEL};
Alternativ pick;
...
bryteren (pick) {
case LAGRE:
gå i stykker;
case DISCARD:
gå i stykker;
case CANCEL:
gå i stykker;
}

Automatiske spesielle metoder

I Java, setter kompilatoren automatisk spesielle metoder i klassen for å gjøre det enkelt å utføre standardoperasjoner. For eksempel setter kompilatoren automatisk en metode som kalles "verdier" som returnerer en matrise av enum konstante verdier i den rekkefølgen de ble erklært. Dette gjør køyring over enum verdier veldig enkelt, som i følgende eksempel:

for (måned m: Month.values ​​()) {
System.out.printf ( "% s har% d dager", m, m.numberOfDays ());
}