Die Aufzählung ist eine standardisierte Form von Parametern, sodass Sie die Fuzzy-Konzepte, die die Parameter vom INT-Typ verursachen können, explizit ersetzen können. Die Aufzählung ist wie eine Klasse und ein Array ohne Berücksichtigung des Typs Nichtübereinstimmung.
Als neues Schlüsselwort von Sun sieht Enum wie eine spezielle Klasse aus. Es kann auch eigene Variablen haben, seine eigenen Methoden definieren und eine oder mehrere Schnittstellen implementieren. Wenn wir einen Enum -Typ deklarieren, sollten wir feststellen, dass der Enum -Typ einige Eigenschaften wie folgt aufweist.
1. Es kann keinen öffentlichen Konstruktor haben, und dies kann sicherstellen, dass der Kundencode keine neue Instanz von Enum erstellen kann.
2. Alle Enum -Werte sind öffentlich, statisch, endgültig. Beachten Sie, dass dies nur für Enumwerte gilt. Wir können alle anderen Nicht-Enumer-Variablen jeglicher Art definieren, genau wie das Definieren von Variablen in gewöhnlichen Klassen. Diese Variablen können mit jedem gewünschten Modifikator hergestellt werden.
A. Enum implementiert standardmäßig die Schnittstelle java.lang.comparable.
4. Enum überschreibt die TOString -Methode. Wenn wir also Color.Blue.toString () nennen, geben wir die Zeichenfolge "Blau" standardmäßig zurück.
5. Enum liefert eine ValueOF -Methode, die der ToString -Methode entspricht. Das Aufrufen von ValueOF ("Blue") gibt color.blue zurück. Daher sollten wir darauf achten, wenn wir die Tastring -Methode selbst neu schreiben. Mit anderen Worten, wir sollten die ValueOF -Methode entsprechend neu schreiben.
6. Enum liefert auch die Wertemethode, mit der Sie alle Enum -Werte problemlos durchqueren können.
7. Enum hat auch eine oridinale Methode, die die Reihenfolge der Enum -Werte in der Enum -Klasse zurückgibt. Diese Reihenfolge hängt von der Reihenfolge der Deklaration des Enumswertes ab. Hier color.red.ordinal () retektiert 0.
Lassen Sie uns nach dem Verständnis dieser grundlegenden Merkmale sehen, wie sie verwendet werden.
1. Durchqueren aller Enum -Werte. Wenn wir wissen, dass es Wertemethoden gibt, können wir die Foreach -Schleife verwenden, um die Enum -Werte mit vertrauter Weise zu durchqueren.
für (Farbe c: color.Values ()) system.out.println ("Wert finden:" + c);2. Definieren Sie Methoden und Variablen in Enum. Zum Beispiel können wir eine Methode zur Färbung hinzufügen, um eine Farbe zufällig zurückzugeben.
public enum color {rot, grün, blau; private statische int nummer = color.Values (). Länge; public static color getRandomcolor () {long random = system.currentTimemillis () % Zahl; switch ((int) random) {case 0: return color.red; Fall 1: color zurückrenden.green; Fall 2: return color.blue; Standard: return color.red; }}}Es ist zu erkennen, dass es keinen Unterschied zwischen der Definition von Variablen und Methoden in Auflauftypen und der Definition von Methoden und Variablen in normalen Klassen gibt. Das einzige, was zu beachten ist, ist, dass nach allen Enum -Wert -Definitionen Variable und Methodendefinitionen platziert werden müssen, da der Compiler einen Fehler angibt.
3.. Überschreiben Sie das ToString, ValueOF -Methode
Wir wissen bereits, dass Enum Methoden wie ToString, ValueOF usw. enthält. Oft müssen wir die Standard -ToString -Methode überschreiben. Wie machen wir also Enum? In der Tat unterscheidet sich dies nicht von der Überschreibung einer ToString -Methode mit einer gewöhnlichen Klasse.
…. public String toString () {switch (this) {case rot: return "color.red"; Case Green: zurück "color.green"; Fall Blau: zurück "color.blue"; Standard: Rückgabe "Unerkundige Farbe"; }}….Zu diesem Zeitpunkt können wir sehen, dass der mit dem vorherigen Traversal -Code ausgedruckten Ausdruck
Color.red color.green color.blue
Stattdessen
Rotgrünblau.
Sie können sehen, dass das Tostring tatsächlich überschrieben ist. Im Allgemeinen sollten wir beim Überschreiben des ToString auch die Werteverfahren überschreiben, um ihre Konsistenz aufrechtzuerhalten.
4. Konstruktoren verwenden
Obwohl Enum keinen öffentlichen Konstruktor haben kann, können wir den privaten Konstruktor trotzdem definieren und in der Aufzählung verwenden. Verwenden wir das Farbbeispiel.
public enum color (rot ("this is rot"), grün ("das ist grün"), blau ("das ist blau"); private Saite Desc; Color (String desc) {this.desc =} public String getDesc () {return this.desc; }}Hier geben wir eine Erläuterungsinformationen für jede Farbe an und definieren dann einen Konstruktor, um diese Erklärungsinformationen zu akzeptieren.
Es ist zu beachten, dass der Konstruktor nicht öffentlich oder geschützt sein kann, um sicherzustellen, dass der Konstruktor nur intern verwendet werden kann und der Client -Code eine Instanz des Enumswerts nicht neu erfolgen kann. Dies ist auch völlig vernünftig, da wir wissen, dass Enum -Werte nur Konstanten des öffentlichen statischen Finales sind.
5. Implementieren Sie bestimmte Schnittstellen
Wir wissen bereits, dass Enum Variablen und Methoden definieren kann. Es muss eine Schnittstelle implementieren und eine Schnittstelle wie die normale Klasse implementieren. Ich werde hier kein Beispiel geben.
6. Definieren Sie Ihre eigene Methode der Aufzählungswerte.
Wir haben früher gesehen, dass einige Methoden für Enum definiert werden können, aber tatsächlich können wir sogar Methoden für jeden Enumswert definieren. Auf diese Weise kann unser bisheriges Beispiel für das übergeordnete ToString so umgeschrieben werden.
public enum color {rot {public String toString () {return "color.red"; }}, Green {public String toString () {return "color.green"; }}, Blue {public String toString () {return "color.Blue"; }}; }Logischerweise ist dies klarer als die ursprüngliche ToString -Methode, die eine "globale" liefert.
Im Allgemeinen hofft Enum als völlig neuer Typ, Programmierern zu helfen, Codes zu schreiben, die einfacher und einfacher zu verstehen sind.
Menschen müssen im Allgemeinen keine erweiterten Funktionen von Enum verwenden, da sie sonst gegen die einfache und leicht verständliche ursprüngliche Absicht verstoßen.
Der obige Artikel spricht kurz über die Rolle und die Vorteile der Jave -Aufzählung sind der gesamte Inhalt, den ich mit Ihnen teile. Ich hoffe, es kann Ihnen eine Referenz geben und ich hoffe, Sie können Wulin.com mehr unterstützen.