[JAVA] Grundlegende Verwendung und Codebeispiel für Enum

Einführung

Die Aufzählung wird als Aufzählungstyp bezeichnet und scheint eine ausgezeichnete zu sein, die mehrere Konstanten zusammensetzen kann. Da ich hart studiert habe, werde ich es für den persönlichen Gebrauch zusammenfassen, während ich das Schreiben von Artikeln übe. Das Ziel war ein Artikel, den Sie sich ansehen und überprüfen können, wenn Sie denken: "Wie verwenden Sie das?" Da dieser Artikel nur die grundlegende Verwendung von Aufzählungstypen behandelt, wird die interne Verarbeitung nicht erwähnt.

Funktionen des Aufzählungstyps

Der Punkt ist, dass Sie Konstanten gemeinsam verwalten können. Es ist jedoch erforderlich, den Code jedes Mal neu zu schreiben, wenn die Konstante geändert wird. Überlegen Sie vor der Implementierung, ob es wirklich als Aufzählungstyp definiert werden sollte.

Definition des Aufzählungstyps

In diesem Abschnitt wird die Definition des Aufzählungstyps vorgestellt. Hier ist ein sehr einfaches Codebeispiel:

Codebeispiel


public enum Fruit {		//"class" ⇒ "enum"Umschreiben an
	//Enumerator-Definition
	APPLE,
	ORANGE,
	PEACH;
}

public class Basket {
	public static void main(String[] args) {

		Fruit flt = Fruit.ORANGE;				//Holen Sie sich Enum
		System.out.println( flt.toString() );	//ORANGE
	}
}

Eine Aufzählung mit einer der eingestellten Konstanten (Enumeratoren) kann als Variable gehalten und bei Bedarf abgerufen werden. Im obigen Beispiel werden "APPLE, ORANGE, PEACH" als Konstanten eingegeben, sodass keine Bedenken bestehen, dass andere Zeichenfolgen ("GRAPE" usw.) ausgegeben werden. Auf diese Weise besteht das Merkmal und der Vorteil von enum darin, dass nur vordefinierte Konstanten verarbeitet werden können.

Enumeratoren können auch definiert werden, indem mehrere Grund- und Klassentypen kombiniert werden. Das Folgende ist ein Beispiel.

Codebeispiel

public enum Fruit {

	APPLE("Apfel", 1),
	ORANGE("Orange", 2),
	PEACH("Pfirsiche", 3);
	
	private String label;
	private int id;


	private Fruit(String label, int id) {	//Deklarieren Sie den Konstruktor als privat
		this.label = label;
		this.id = id;
	}


	public String getLabel() {
		return label;
	}

	public int getId() {
		return id;
	}
}

public class Basket {

	public static void main(String[] args) {

		Fruit flt = Fruit.APPLE;
		System.out.println( flt.getLabel() );		//Apfel

		System.out.println( Fruit.PEACH.getId() );	//3
	}
}

Im obigen Beispiel ist der Enumerator eine Kombination aus einer Zeichenfolge und einer Ganzzahl. Wenn Sie die Klasse "Obst" und die Klasse "Korb" vergleichen, können Sie sehen, dass sie jeweils die entsprechenden Werte erhalten.

Um Enumeratoren in Kombination zu definieren und zu betreiben, müssen Felder, Konstruktoren bzw. Methoden definiert werden. Umgekehrt können Sie nach Bedarf Felder, Konstruktoren und Methoden definieren.

Ein Beispiel für die Definition einer einfachen Methode ist unten dargestellt.

Codebeispiel

public enum Fruit {

	APPLE("Apfel", 1),
	ORANGE("Orange", 2),
	PEACH("Pfirsiche", 3);

	private String label;
	private int id;


	private Fruit(String label, int id) {
		this.label = label;
		this.id = id;
	}


	public String getLabel() {
		return label;
	}

	public int getId() {
		return id;
	}


	public static Fruit getById(int id) {

		for( Fruit flt : Fruit.values() ) {	//Scannen mit erweiterter Anweisung
			if( flt.getId() == id ) {
				return flt;					//Gibt Instanzen zurück, die den Kriterien entsprechen
			}
		}
		return null;
	}
}

public class Basket {

	public static void main(String[] args) {

		Fruit flt = Fruit.getById(2);
		System.out.println( flt.getLabel() );	//Orange
	}
}

Abhängig von der Methode ist es nicht immer erforderlich, sie in der Enum-Klasse zu definieren (z. B. kann die Methode "getById" im obigen Beispiel problemlos ausgeführt werden, auch wenn sie in einer anderen Klasse definiert ist), aber allgemeine Methoden rund um den Enumerator werden zusammengefasst. Wäre praktisch.

Aufzählungstypmethode

Aufzählungstypen haben von Anfang an nützliche Methoden. Obwohl es im Codebeispiel im vorherigen Abschnitt beschrieben ist, werde ich es in diesem Abschnitt noch einmal vorstellen.

・ ToString ()


public class Basket {
	public static void main(String[] args) {

		Fruit flt = Fruit.ORANGE;
		System.out.println( flt.toString() );	//ORANGE
	}
}

toString () ist eine Methode, um die Zeichenfolge als Enumerator zu deklarieren. name () ergibt das gleiche Ergebnis, scheint aber veraltet zu sein. Der Unterschied besteht darin, dass "toString ()" überschrieben werden kann, "name ()" jedoch nicht.

・ ValueOf (Stringname)


public class Basket {

	public static void main(String[] args) {

		Fruit flt = Fruit.valueOf("PEACH");
		System.out.println( flt.getLabel() );	//Pfirsiche
	}
}

valueOf (String name) ist eine Methode, die einen Enumerator zurückgibt, der mit der Zeichenfolge der Argumente übereinstimmt. Beachten Sie, dass, wenn kein übereinstimmender Enumerator vorhanden ist, eine "IllegalArgumentException" zurückgegeben wird.

・ Werte ()


public class Basket {

	public static void main(String[] args) {

		for( Fruit flt : Fruit.values() ) {
			System.out.println( flt.getLabel() );	//Apfel
													//Orange
													//Pfirsiche
		}
	}
}

values () ist eine Methode, die hauptsächlich in der erweiterten for-Anweisung verwendet wird. Wie im obigen Beispiel kann der Enumerator umfassend verarbeitet werden.

Am Ende

Diesmal habe ich zum ersten Mal einen Qiita-Artikel geschrieben, aber mir wurde klar, dass mir das Wissen fehlte. Ich habe auch die unklaren Punkte überprüft, indem ich mir die Materialien hier und da angesehen habe, aber ich habe auch verstanden, dass ich den Ort, den ich richtig gesehen habe, vergessen würde, wenn ich ihn nicht aufzeichnen würde. Ich möchte weiterhin Artikel als persönliche Zusammenfassung schreiben.

Referenzmaterial

Über enum (Qiita-Artikel) Benimm dich mit Enum (Qiita-Artikel)

Recommended Posts

Grundlegende Verwendung und Codebeispiel für Enum
Super grundlegende Verwendung von Eclipse
Grundlegende Verwendung von Java Optionaler Teil 1
[Rails] Unterschiede und Verwendung von each_with_index und each.with_index
Grundstruktur des Java-Quellcodes
Beispiele für Lambda-, Sortier- und anonyme Funktionen
[Ruby] Schleifenunterscheidung und Verwendung in Ruby
Einführung und Verwendungserklärung von Font Awesome
Diskriminierung von Enum in Java 7 und höher
JDBC Versprechen und Schreibbeispiel
Inhaltsverzeichnis Code Refactoring und verwandte Artikel
Lernen Sie den rudimentären Mechanismus und die Verwendung von Gradle 4.4 kennen
JDK-Installation und -Konfiguration, Grundstruktur des Quellcodes
Java-Überprüfung ③ (grundlegende Verwendung von Arrays / Referenztyp)
[Ruby] Grundlegende Codeliste. Behalten Sie die Grundlagen mit Beispielen
Der Vergleich von enum ist == und gleich ist gut [Java]
Minimaler Einsatz von Mockito
Grundlegende Bediener und Operationen
[Java] Unterschied zwischen der Zuweisung der Basistypvariablen und der Zuordnung der Referenztypvariablen
Beispielcode für das grundlegende Verspotten und Testen mit Mockito 3 + JUnit 5