Tre vantaggi primari di ENUM

September 1

Tre vantaggi primari di ENUM


La maggior parte dei programmatori assegnare valori numerici per ciascuna voce in un elenco, come ad esempio i giorni della settimana, per rendere la codifica più veloce ed evitare errori tipografici. Alcuni linguaggi di programmazione forniscono un tipo di enumeratore o enum, che consente di definire un insieme fisso di costanti in un tipo speciale. L'utilizzo di un costrutto enum ha diversi vantaggi, come ad esempio una migliore tipo di corrispondenza, la possibilità di definire metodi personalizzati, accesso ai membri automatici forniti dal compilatore, e in generale una maggiore leggibilità e la manutenzione del programma.

Fissare metodi personalizzati

Quando si utilizza il tipo enum, si definisce una nuova classe. Proprio come con qualsiasi altra classe, è possibile includere metodi personalizzati e campi nella classe. Ciò consente di fornire funzionalità incapsulato relativo al tipo enum. Ad esempio, il seguente definisce una classe di tipo enum con la latitudine e la longitudine media per gli Stati Uniti. Esso contiene un metodo personalizzato, distanza, che calcola la distanza tra una latitudine e longitudine passati come parametri al metodo.

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

doppio latitudine finale privato;
privato finale doppia longitudine;
Stato (doppia latitudine, longitudine doppia) {
this.latitude = latitudine;
this.longitude = longitudine;
}
doppia latitudine privato () {latitudine di ritorno; }
privato doppia longitudine () {return longitudine; }
static final double R privato = 6371;

distanza doppia (doppio lat, doppia GNL) {
// Legge sferica del coseni
ritorno cos (sin (latitudine) sin (lat) + cos (latitudine) cos (LAT) + cos (LNG-longitudine)) * R;
}
}

Enhanced tipo di corrispondenza

Poiché il tipo enum è una classe, si applica il tipo di corrispondenza per includere corrispondenza contro l'insieme delle costanti definite nella enum. Ciò impedisce errori garantendo che i parametri alle funzioni sempre contenere un valore nella classe tipo enum. Ad esempio, se una funzione richiede una stagione come parametro, il parametro attuale passato alla funzione in fase di esecuzione saranno confrontati con i quattro valori ammissibili definite dalla enum:

enum pubblico Stagione {primavera, estate, inverno, autunno};
public function tempo (enum stagione) {
...
};

documentazione migliorata

Il costrutto enum rende il codice più facile da capire e mantenere. Con la creazione di una costruzione enum di membri con nomi significativi, a documentare codice come lo si crea. Ad esempio, dichiara un enum chiamato "Option" rende facile capire i casi nella dichiarazione "switch":

enum opzione {SAVE, scartare, ANNULLA};
Opzione scelta;
...
switch (scelta) {
caso SAVE:
rompere;
caso DISCARD:
rompere;
caso ANNULLA:
rompere;
}

Metodi speciali automatici

In Java, il compilatore inserisce automaticamente i metodi speciali in classe per rendere più facile per eseguire le operazioni standard. Ad esempio, il compilatore inserisce automaticamente un metodo chiamato "valori" che restituisce un array di enum valori costanti nell'ordine in cui sono stati dichiarati. Questo rende l'iterazione sui valori enum molto semplici, come il seguente esempio:

per (mese M: Month.values ​​()) {
System.out.printf ( "% s ha% d giorni", m, m.numberOfDays ());
}