Java enum & enum Class (mit Beispielen)

In diesem Tutorial lernen wir Enums in Java kennen. Wir werden anhand von Beispielen lernen, Aufzählungen und Aufzählungsklassen zu erstellen und zu verwenden.

In Java ist eine Aufzählung (kurz für Aufzählung) ein Typ mit einem festen Satz konstanter Werte. Wir verwenden das enumSchlüsselwort, um Aufzählungen zu deklarieren. Beispielsweise,

 enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE )

Hier haben wir eine Aufzählung mit dem Namen Size erstellt. Es enthält feste Werte SMALL, MEDIUM, LARGE und EXTRALARGE.

Diese Werte in geschweiften Klammern werden als Enum-Konstanten (Werte) bezeichnet.

Hinweis: Die Enum-Konstanten werden normalerweise in Großbuchstaben dargestellt.

Beispiel 1: Java Enum

 enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE ) class Main ( public static void main(String() args) ( System.out.println(Size.SMALL); System.out.println(Size.MEDIUM); ) )

Ausgabe

 KLEINES MITTEL

Wie wir aus dem obigen Beispiel sehen können, verwenden wir den Namen enum, um auf die konstanten Werte zuzugreifen.

Wir können auch Variablen von Aufzählungstypen erstellen. Beispielsweise,

 Size pizzaSize;

Hier ist pizzaSize eine Variable vom Typ Size. Es können nur 4 Werte vergeben werden.

 pizzaSize = Size.SMALL; pizzaSize = Size.MEDIUM; pizzaSize = Size.LARGE; pizzaSize = Size.EXTRALARGE;

Beispiel 2: Java Enum mit der switch-Anweisung

 enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE ) class Test ( Size pizzaSize; public Test(Size pizzaSize) ( this.pizzaSize = pizzaSize; ) public void orderPizza() ( switch(pizzaSize) ( case SMALL: System.out.println("I ordered a small size pizza."); break; case MEDIUM: System.out.println("I ordered a medium size pizza."); break; default: System.out.println("I don't know which one to order."); break; ) ) ) class Main ( public static void main(String() args) ( Test t1 = new Test(Size.MEDIUM); t1.orderPizza(); ) )

Ausgabe

 Ich bestellte eine mittelgroße Pizza.

Im obigen Programm haben wir einen Aufzählungstyp Size erstellt. Wir haben dann eine Variable pizzaSize vom Typ Size deklariert.

Hier kann der Variablen pizzaSize nur 4 Werte zugewiesen werden (SMALL, MEDIUM, LARGE, EXTRALARGE).

Beachten Sie die Aussage,

 Test t1 = new Test(Size.MEDIUM);

Der Test()Konstruktor innerhalb der Testklasse wird aufgerufen . Jetzt wird der Variablen pizzaSize die Konstante MEDIUM zugewiesen.

Basierend auf dem Wert wird einer der Fälle der switch case-Anweisung ausgeführt.

Enum-Klasse in Java

In Java werden Aufzählungstypen als spezieller Klassentyp betrachtet. Es wurde mit der Veröffentlichung von Java 5 eingeführt.

Eine Enum-Klasse kann genau wie reguläre Klassen Methoden und Felder enthalten.

 enum Size ( constant1, constant2,… , constantN; // methods and fields )

Wenn wir eine Enum-Klasse erstellen, erstellt der Compiler Instanzen (Objekte) jeder Enum-Konstante. Außerdem ist die gesamte Enum-Konstante immer public static finalstandardmäßig.

Beispiel 3: Java Enum Class

 enum Size( SMALL, MEDIUM, LARGE, EXTRALARGE; public String getSize() ( // this will refer to the object SMALL switch(this) ( case SMALL: return "small"; case MEDIUM: return "medium"; case LARGE: return "large"; case EXTRALARGE: return "extra large"; default: return null; ) ) public static void main(String() args) ( // call getSize() // using the object SMALL System.out.println("The size of the pizza is " + Size.SMALL.getSize()); ) )

Ausgabe

 Die Größe der Pizza ist klein

Im obigen Beispiel haben wir eine Aufzählungsklasse Size erstellt. Es hat vier Konstanten SMALL, MEDIUM, LARGE und EXTRALARGE.

Da Size eine Enum-Klasse ist, erstellt der Compiler automatisch Instanzen für jede Enum-Konstante.

Hier innerhalb der main()Methode haben wir die Instanz SMALL verwendet, um die getSize()Methode aufzurufen .

Hinweis : Wie reguläre Klassen kann auch eine Enum-Klasse Konstruktoren enthalten. Um mehr darüber zu erfahren, besuchen Sie den Java-Enum-Konstruktor.

Methoden der Java Enum Class

Es gibt einige vordefinierte Methoden in Enum-Klassen, die zur Verwendung leicht verfügbar sind.

1. Java Enum ordinal ()

Die ordinal()Methode gibt die Position einer Enum-Konstante zurück. Beispielsweise,

 ordinal(SMALL) // returns 0

2. Enum compareTo ()

Die compareTo()Methode vergleicht die Enum-Konstanten anhand ihres Ordnungswerts. Beispielsweise,

 Size.SMALL.compareTo(Size.MEDIUM) // returns ordinal(SMALL) - ordinal(MEDIUM)

3. Enum toString ()

Die toString()Methode gibt die Zeichenfolgendarstellung der Enum-Konstanten zurück. Beispielsweise,

 SMALL.toString() // returns "SMALL"

4. Enum name ()

Die name()Methode gibt den definierten Namen einer Enum-Konstante in Zeichenfolgenform zurück. Der von der name()Methode zurückgegebene Wert ist final. Beispielsweise,

 name(SMALL) // returns "SMALL"

5. Java Enum valueOf ()

The valueOf() method takes a string and returns an enum constant having the same string name. For example,

 Size.valueOf("SMALL") // returns constant SMALL.

6. Enum values()

The values() method returns an array of enum type containing all the enum constants. For example,

 Size() enumArray = Size.value();

Why Java Enums?

In Java, enum was introduced to replace the use of int constants.

Suppose we have used a collection of int constants.

 class Size ( public final static int SMALL = 1; public final static int MEDIUM = 2; public final static int LARGE = 3; public final static int EXTRALARGE = 4; )

Here, the problem arises if we print the constants. It is because only the number is printed which might not be helpful.

So, instead of using int constants, we can simply use enums. For example,

 enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE )

This makes our code more intuitive.

Also, enum provides compile-time type safety.

If we declare a variable of the Size type. For example,

 Size size;

Hier ist garantiert, dass die Variable einen der vier Werte enthält. Wenn wir nun versuchen, andere Werte als diese vier Werte zu übergeben, generiert der Compiler einen Fehler.

Interessante Beiträge...