java enum java enumeration tutorial with examples
In diesem Tutorial werden die Java Enum-Klasse und der Konstruktor erläutert. Wir werden anhand verschiedener Java-Programmierbeispiele lernen, wie man Enum verwendet:
Dies ist eine spezielle Klasse, deren Erklärung im Detail gegeben wird. Ein Einblick in die Java Enum-Klasse wird zusammen mit der Liste der unterstützten Methoden gegeben.
In diesem Lernprogramm sind zum besseren Verständnis ausreichend Programme enthalten, die die Java-Enum-Konzepte implementieren, sowie einige häufig gestellte Fragen, die möglicherweise während der Interviews gestellt werden.
=> Überprüfen Sie hier, um die Java-Schulungsserie für alle anzuzeigen.
Was du lernen wirst:
Java-Aufzählung
Eine Java-Aufzählung ist nichts anderes als eine Liste von Instanzvariablen, Methoden oder Konstruktoren. Dies ist eine Gruppe von Konstanten. Das Konzept der Aufzählung wurde in JDK5 eingeführt. Die Standardeigenschaft jeder Aufzählungskonstante ist public, static und final.
enum Schlüsselwort
Die Aufzählung wird mit einem Schlüsselwort namens „ Aufzählung ”.
Im Folgenden ist die Syntax angegeben, mit der wir eine Aufzählung erstellen können.
Syntax:
enum enumerated_type_name
{
enumerator1, enumerator2,… enumeratorN;
}}
Hinweis: enum kann nur innerhalb einer Klasse oder Schnittstelle der obersten Ebene oder in einem statischen Kontext definiert werden. Es sollte sich nicht in einer Methode befinden.
enum Beispiel
In diesem Beispiel werden vier Enumeratoren initialisiert, d. H. Spaten, Herz, Diamant und Keule, die zu einem Aufzählungstyp gehören, der als Karten bezeichnet wird.
Dann werden wir versuchen, jeden dieser Enumeratoren zu drucken.
/* * created an enumeration called cards * with four enumerators. */ enum cards { spade, club, heart, diamond; } public class A { public static void main(String[] args) { /* * stored each of the enumerators in the * reference variables a1,a2,a3,a4 respectively. * note that the new keyword was not used here */ cards a1 = cards.spade; cards a2 = cards.club; cards a3 = cards.heart; cards a4 = cards.diamond; System.out.println('Enumerators are: '+ a1 + ',' + a2 + ',' + a3 + ',' + a4); } }
Ausgabe:
Aufzählungsklasse
Eine Sache, die Sie im obigen Beispiel bemerkt haben müssen (siehe Kommentare), ist, dass wir keine verwendet haben 'Neues Schlüsselwort' während instanziieren. Obwohl die Aufzählungen eine Klasse Enum und auch die Konstruktoren definieren, verwenden sie kein neues Schlüsselwort.
Wir können die Enumeratoren verwenden, die auf die gleiche Weise wie das Grundelement definiert sind. Enum ist eine generische Klasse und alle Aufzählungen erben Enum.
Syntax:
// E ist der Aufzählungstyp.
Klasse Enum
So verwenden Sie Enum in Java
Lassen Sie uns anhand von Java-Beispielen sehen, wie Enum in verschiedenen Szenarien verwendet wird:
Innerhalb einer Klasse
Enum kann innerhalb oder außerhalb einer Klasse deklariert werden (Beispiel für ein Enum-Schlüsselwort), jedoch nicht innerhalb einer Methode. Hier zeigen wir, wie enum innerhalb einer Klasse deklariert wird.
Im folgenden Beispiel haben wir eine Enumeration innerhalb einer Klasse erstellt und dann den Wert oder Enumerator mit Hilfe einer Referenzvariablen a1 abgerufen.
public class A { /* * created an enumeration called cards * with four enumerators. */ enum cards { spade, club, heart, diamond; } public static void main(String[] args) { /* * stored each of the enumerators in the * reference variables a1. * note that the new keyword was not used here */ cards a1 = cards.heart; System.out.println('Card is: '+ a1); } }
Ausgabe:
Iteration Enum Through Loops
Hier werden wir diskutieren, wie wir eine Aufzählung durchlaufen können. Wir haben die Aufzählung mit vier Aufzählern (außerhalb einer Klasse) deklariert. Dann haben wir für jede Schleife (innerhalb einer Klasse) ein initialisiert und versucht, den Wert der Enumeratoren abzurufen.
/* * created an enumeration called games * with four enumerators. */ enum games { ludo, Chess, Badminton, Cricket; } public class A { public static void main(String[] args) { /* * used forEach loop and stored the value in 'index' * and printed the value of each enumerator */ System.out.println('Using for each loop'); for (games index:games.values()) { System.out.println(index); } } }
Ausgabe:
eckige js Interview Fragen und Antworten
In if-else
Im folgenden Programm haben wir eine Aufzählung mit drei verschiedenen Aufzählern erstellt und dann den Aufzähler in der Referenzvariablen für einen der angegebenen Aufzähler gespeichert.
Dann haben wir die if-Bedingungsprüfung gestartet, bei der wir zwei mit OR angegebene Bedingungen implementiert haben. Wenn eine dieser Bedingungen erfüllt ist, wird die in der if-Bedingung angegebene Anweisung gedruckt.
Andernfalls wird die in der else-Bedingung angegebene Anweisung gedruckt.
/* * created an enumeration called players * with three enumerators. */ enum players { sachin, virat, dhoni; } public class A { public static void main(String[] args) { /* * stored enumerator in reference variable a1 for * contant dhoni */ players a1 = players.dhoni; /* * Started if statement with OR condition. * If any of these conditions are met then it will * print the statement specified inside if statement */ if(a1 == players.virat || a1 == players.sachin) { System.out.println('Sachin and Virat are greatest batsmen'); } /* * if none of the above condition is met then it will * print the below specified statement */ else { System.out.println('Dhoni is the best Captain'); } } }
Ausgabe:
In der Switch-Anweisung
Im folgenden Programm haben wir eine Aufzählung mit vier Aufzählern erstellt. Dann haben wir einen der Enumeratoren in der Referenzvariablen gespeichert. Danach haben wir eine Switch-Anweisung initialisiert und jeden dieser Enumeratoren überprüft.
Beim Auftreten dieses bestimmten Enumerators wird die im jeweiligen Fall angegebene Anweisung gedruckt.
/* * created an enumeration called players * with four enumerators. */ enum players { sachin, dravid, virat, dhoni; } public class A { public static void main(String[] args) { /* * stored enumerator in reference variable a1 for * contant dravid */ players a1 = players.dravid; /* * Started Switch Statement and if the element * matches with a1 then it will print the statement * specified in the case */ switch(a1) { // does not match case sachin: System.out.println('Sachin is best bastman ever'); break; // matches case dravid: System.out.println('Dravid is the best Test Batsman'); break; // does not match case virat: System.out.println('Virat is modern great'); break; // does not match case dhoni: System.out.println('Dhoni is the best captain ever'); break; } } }
Ausgabe:
Aufzählungsfeld und Methoden
Enum Field
In diesem Abschnitt wird das Aufzählungsfeld ausführlich erläutert. Wir können der Java-Enumeration Felder hinzufügen, und jeder Enumerator erhält diese Felder. Der Feldwert sollte dem Konstruktor der Aufzählung zugewiesen werden.
In der folgenden Syntax sehen wir, dass eine Aufzählung mit drei Aufzählern definiert wurde. Neben jedem Enumerator haben wir ein Feld vom Typ int definiert. ( Z.B. - (3), (2) bzw. (1)).
Dies summiert sich darauf, dass Java enum einen Konstruktor hat, der ein int akzeptiert. Dieser Konstruktor legt das int-Feld fest. Wenn ein Enumerator definiert ist, wird dieser int-Wert (für diesen Enumerator angegeben) an den Konstruktor übergeben.
Syntax:
public enum A { /* * calls a contructor with value * defined on the respective enumerator */ Enumerator1(3), Enumerator2(2), Enumerator3(1) /* * semicolon needed for the last enumerator * if there is a method following it. */ ; private final int constant; private A(int constant) { this.constant = constant; } }
Hinweis: Zum Beispiel im Feld Aufzählung lesen Sie bitte den Abschnitt „ Enum-Konstruktor ”.
Aufzählungsmethoden
# 1) name ()
public final String name () - Gibt den Namen der aufrufenden Konstante zurück (unverändert oder unverändert).
# 2) gleich ()
public final boolean equals (Object other) - Gibt true zurück, wenn obj und das aufrufende Objekt auf dieselbe Konstante verweisen.
# 3) toString
public String toString () - Gibt den Namen der aufrufenden Konstante zurück. Entspricht nicht unbedingt dem Namen, der in der Deklaration der Aufzählung verwendet wird.
# 4) Klon
geschützter endgültiger Objektklon ()
löst CloneNotSupportedException aus - Dies bedeutet, dass die Aufzählung beim Versuch, zu klonen, eine Ausnahme auslöst.
# 5) hashCode ()
public final int hashCode () - Gibt den Hash-Code für das aufrufende Objekt zurück.
# 6) finalize ()
protected final void finalize () - Die Enum-Klasse kann keine finalisierten Methoden haben. Kein Rückgabewert.
# 7) compareTo ()
public final int compareTo (E obj) - Hiermit wird die Aufzählung mit dem angegebenen Objekt obj verglichen. Es wird negativ zurückgegeben, wenn das Objekt kleiner als das angegebene Objekt ist. Es wird positiv zurückgegeben, wenn dieses Objekt größer als das angegebene Objekt obj ist, und es wird Null zurückgegeben, wenn das angegebene Objekt diesem Objekt entspricht.
# 8) getDeclaringClass
public final Class getDeclaringClass () - Gibt den Aufzählungstyp (auch als Enum-Deklarationsklasse bezeichnet) zurück, zu dem die aufrufende Konstante gehört.
# 9) ordinal (), values () und valueOf ()
Alle diese Methoden sind Teil des Pakets java.lang.Enum . Die Methode ordinal () gibt die Reihenfolge der Aufzählungskonstante basierend auf dem Index der Konstante zurück.
Die Methode values () gibt alle in der Aufzählung vorhandenen Werte zurück. Die Methode valueOf (String) gibt die Aufzählungskonstante des Eingabe-Strings zurück. Wenn der angegebene String nicht mit der Konstante übereinstimmt, wird eine IllegalArgumentException ausgelöst.
Im Folgenden finden Sie das Programmierbeispiel, in dem wir dasselbe Beispiel (als Beispiel für ein Enum-Schlüsselwort) verwendet und das Konzept aller drei Methoden implementiert haben.
/* * created an enumeration called cards * with four enumerators. */ enum cards { spade, club, heart, diamond; } public class A { public static void main(String[] args) { /* * created an array arr[] which will store the * value of the constants/enumerators declared in the enumeration */ cards arr[] = cards.values(); /* * used forEach loop and stored the value in 'type' * and printed the value as well as index with the help of * ordinal() method */ for (cards type:arr) { System.out.println(type + ' occurs at ' + type.ordinal()); } /* * passed heart as an input String which matches with the * constant declared in 'cards' */ System.out.println(cards.valueOf('heart')); } }
Ausgabe:
Enum-Konstruktor
Enum (da es auch eine Klasse ist) unterstützt den Konstruktor beim Übergeben von Daten während der Erstellung von Enumeratoren oder auch als Enum-Konstanten bezeichnet.
Die Haupteigenschaft eines Enum-Konstruktors ist, dass es sich um private oder private Pakete handelt. Dies bedeutet, dass entweder innerhalb einer Klasse oder innerhalb eines Pakets auf sie zugegriffen werden kann.
Sehen wir uns das folgende Beispiel an. Hier haben wir sowohl das Verfahren als auch den Konstruktor verwendet. Zunächst haben wir eine Aufzählung mit dem Namen 'Spieler' erstellt, die fünf Aufzähler und das Feld enthält.
Dann haben wir einen Konstruktor und eine Methode, die die Anzahl der von jedem Spieler oder Aufzähler oder Aufzählungskonstanten erzielten Läufe zurückgibt.
Danach haben wir die Hauptklasse, in der wir für jede Schleife die Methode values () verwendet haben, um jeden Enumerator zu speichern und zu iterieren. Außerdem haben wir die Methode für die Anzahl der von jedem Spieler erzielten Läufe aufgerufen.
/* * Created enumeration players with the field. * Declared a constructor and a method to return * the number of runs scored by the players. */ enum players { dravid(10889), sachin(18426), ganguly(11363), virat(11867), dhoni(10773) ; private int runs; /* * Created enumeration players with the field. * Declared a constructor and a method to return * the number of runs scored by the players. */ enum players { dravid(10889), sachin(18426), ganguly(11363), virat(11867), dhoni(10773) ; private int runs; players(int r) { runs = r; } int getRuns() { return runs; } } /* * Used values() method to get the enumerators and a for each loop * to get the number of runs scored by each player */ public class A { public static void main(String args[]) { for (players a : players.values()) System.out.println(a + ' has scored ' + a.getRuns() + ' ODI runs'); } }
Ausgabe:
Häufig gestellte Fragen
F # 1) Was ist der Unterschied zwischen Iterator und Enumeration in Java?
Antworten: Nachstehend ist der Unterschied zwischen Iterator und Aufzählung angegeben.
Iterator | Aufzählung |
---|---|
Es ist ein generischer Cursor, der zum Iterieren von Elementen verwendet wird und auf alle Auflistungsklassen anwendbar ist. | Es ist kein generischer Cursor, da er nur für ältere Klassen wie Enum gilt. Nur Leseberechtigung für eine Sammlungsklasse. |
Einige der Methoden sind hasNext (), next () für die Iteration. | Einige der Methoden sind hasMoreElements (), nextElement () für die Iteration. |
Wir können das Element in einer Sammlung mit dem Iterator entfernen. | Wir können das Element in einer Sammlung nicht mit Enumeration entfernen, da es nur über Leseberechtigung verfügt. |
F # 2) Wie unterstützt Enum die Vererbung?
Antworten: Afterall Enum ist auch eine Klasse in Java, daher muss Inheritance unterstützt werden, ein Grundprinzip von OOPS. Alle Aufzählungen erweitern die Klasse java.lang.Enum. Da eine Klasse nur ein einzelnes übergeordnetes Element erweitern kann, erweitert die Enum-Klasse keine andere.
Das toString (), das Teil der Enum-Klasse ist (siehe Abschnitt Enum-Methode), wird in der Klasse java.lang.Enum überschrieben.
Fazit
In diesem Tutorial haben wir die Aufzählungen, Aufzähler, die Java Enum-Klasse und das Schlüsselwort enum mit geeigneten Beispielen und Erklärungen besprochen, wo immer dies erforderlich ist. Außerdem haben wir einen Einblick in die wichtigen Methoden gegeben, die mit der Enum-Klasse mit dem Enum-Feld verbunden sind.
Es wurde ein Einblick in den Konstruktor, eine Aufzählung mit if-else, switch und Schleifen bereitgestellt.
=> Besuchen Sie hier, um Java von Grund auf neu zu lernen.
Literatur-Empfehlungen
- Java Scanner Class Tutorial mit Beispielen
- Java Integer und Java BigInteger Klasse mit Beispielen
- Java Float Tutorial mit Programmierbeispielen
- Was ist Java Vector? Java Vector Class Tutorial mit Beispielen
- TreeMap in Java - Tutorial mit Java TreeMap-Beispielen
- Java Double - Tutorial mit Programmierbeispielen
- Java Array Class Tutorial - java.util.Arrays-Klasse mit Beispielen
- C # -Konzepte: Konstruktor, Destruktor, statische Klasse, Struktur & Aufzählung