1. Der Unterschied zwischen Aufzählung und statischen Konstanten
Wenn es um die Aufzählung geht, denken wir zunächst darüber nach, wie es sich von den Konstanten unterscheidet, die durch öffentliche statische endgültige Zeichenfolge geändert werden.
Ich werde zwei Vorteile der Aufzählung zitieren:
1. Sicherheitssicherheit: Der Anrufer kann einen INT- oder String -Wert nach Belieben nicht übergeben.
2. Der Code ist sehr lesbar;
Zum Beispiel:
In der tatsächlichen Programmierung gibt es häufig solche "Datensätze", deren Werte im Programm stabil sind, und die Elemente in den "Datensätzen" sind begrenzt. Zum Beispiel bilden die vier Datenelemente des Frühlings, Sommers, Herbstes und Winters den "Datensatz" der vier Jahreszeiten.
Sie haben die Methode GET geschrieben (String -Saison), und der Typ, den Sie eingeben, kann nur String -Typ sein, und die Zeichenfolge kann nur sein (Frühling, Sommer, Herbst, Winter).
Diesmal. Sie schreiben vier Stringkonstanten
öffentliche Klasse Common {public static Final String Spring = "Spring"; Public Static Final String Season = "Summer"; Public Static Final String summer = "Herbst"; public static final String autumn = "Winter";}Wenn Sie Get (Common.saison) in die Get -Methode einfügen, wird "Frühling" in die Tatsache eingebracht, aber zu diesem Zeitpunkt werden Sie feststellen, dass hier eine versteckte Gefahr besteht. Sie erhalten (String -Saison), schließlich wird der String -Typ eingestellt. Wenn ein neuer Kollege oder ein nicht informierter Kollege nicht weiß, dass Sie in dieser Methode nur "Frühling, Sommer, Herbst und Winter" einfügen können. Es setzt eine Saite wie GET ("Xiaoxiao"). Zu diesem Zeitpunkt wird es keinen Fehler während der Kompilierungsperiode melden. Erst nach dem Laufen wird es feststellen, dass es falsch ist.
Um die oben genannten versteckten Gefahren zu verhindern, erscheint die Aufzählung
öffentliche Enum -Saison (Spring ("Frühling"), Sommer ("Sommer"), Herbst ("Herbst"), Winter ("Winter"); ....}Zu diesem Zeitpunkt ändern wir die Parameterübertragung der GET -Methode und ändern sie (Saisonsaison). Zu diesem Zeitpunkt fügen wir GET (Saison.spring) hinzu, was sicherstellen kann, dass nur wenige Parameter übergeben sind.
2. Verstehen Sie die Aufzählung
Zunächst müssen wir klar sein. Tatsächlich ist die Aufzählung auch eine Klassenklasse. Ich werde eine Aufzählung schreiben, um zu verstehen.
// Wir behandeln Enums als eine gemeinsame Klasse für öffentliche Enum -Saison (Frühling (1, "Spring"), Sommer (2, "Sommer"), Herbst (3, "Herbst"), Winter (4, "Winter"); // Der letzte hier muss ein Semikolon sein, andernfalls wird ein Fehler gemeldet/ *Wir können es als *öffentliche statische Final -Saison Spring = neue Saison (1, Frühling) verstehen; *öffentliche statische Final -Saison Sommer = neue Saison (2, Sommer); *öffentliche statische Final -Saison Herbst = neue Saison (3, Herbst); *öffentliche statische Final -Saison Winter = neue Saison (4, Winter); * Da es sich um ein Objekt handelt, ist es unten leicht zu verstehen this.code = code; } // Attribute des privaten String -Namens des Objekts; privater Int -Code; // Methoden zum Erhalten von Objekteigenschaften öffentliche String getName () {return this.name; } public String getCode () {return this.name; } // Das Objekt über Code erhalten, können wir andere Eigenschaften des Objekts öffentliche statische Saison Decodes (int Code) {Season Season = NULL; für (Saisontyp: saison.Values ()) {if (type.code == code) {Season = type; brechen; }} Rücklaufsaison; } // Re-toString-Methode public String toString () {return this.name; }}Das obige Beispiel erklärt die Aufzählung sehr gut. Es unterscheidet sich nicht von gewöhnlichen Klassen. Es verwendet nur eine andere Möglichkeit, mehrere Objekte mit Attributen zu erstellen. Dies erfordert auch einen solchen Konstruktor mit Attributen, und das ist alles.
Hier sind einige Merkmale der Aufzählung:
1. Es kann keinen öffentlichen Konstruktor haben, und dies kann sicherstellen, dass der Kundencode keine neue Instanz von Enum erstellen kann.
2. Die Aufzählung kann andere Klassen nicht erben, da sie standardmäßig java.lang.enum erbt.
3. Die konstante Wertadresse ist eindeutig, und Sie können == verwenden, um sie direkt zu vergleichen, und die Leistung wird verbessert.
4. Enum liefert auch die Wertemethode, mit der Sie alle Enum -Werte problemlos durchqueren können.
5. Enum hat auch eine oridinale Methode, die die Reihenfolge der Enum -Werte in der Enum -Klasse zurückgibt, die von der Reihenfolge der Enum -Wert -Deklaration abhängt.
3.. Häufige Verwendung der Aufzählung
Der erste Typ: Switch -Anwendung
Erstellen Sie zuerst eine Aufzählung:
public enum Common {einfügen, modifizieren, löschen} // Da dies ein Objekt ohne Parameter ist, kann der Standardkonstruktor des Systems verwendet werden. Es sind keine Notwendigkeit, Attribute und Methoden zu schreiben.Schreiben von Implementierungscode
öffentliche Klasse CommonUtils {public static void Gettype (Common Common) {Common c = Common; Switch (c) {case Insert: System.out.println ("Vorgang einfügen"); brechen; Fallmodifizierung: System.out.println ("Operation konfigurieren"); brechen; Fall Delete: System.out.println ("Betrieb löschen"); brechen; }} public static void main (String [] args) {GettType (Common.Delete); // Hintergrundausgabe: Betrieb löschen}}Die zweite Verwendung besteht darin, den Wertwert über den Schlüsselwert zu erhalten, um andere Werte zu erhalten
Aufzählungsklasse
Öffentliche Enum -Saison (Frühling (1, "Spring", "Frühlings -Kite fliegen im Frühling"), Sommer (2, "Sommer", "Schwimmen im Sommer"), Herbst (3, "Herbst", "Herbstausflug im Herbst"), Winter (4, "Winter", "Winter" -Saison (int Code, String name, String bz; private String bz;
Testklasse
Okay, ich werde so viel schreiben und ich werde ausführlicher kennenlernen, wenn ich es in Zukunft brauche. Vielen Dank für Ihre Unterstützung bei Wulin.com.