Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Java Enums meistern: Vollständiger Leitfaden zu Enums & Enum-Klassen

Java Enums

In diesem Tutorial lernen wir Enums in Java kennen. Wir lernen, Enums und Enum-Klassen mit Beispielen zu erstellen und zu verwenden.

In Java ist ein Enum (kurz für Enumeration) ein Typ, der eine feste Menge an konstanten Werten hat. Wir verwenden das enum-Schlüsselwort, um Enums zu deklarieren. Zum Beispiel:

 enum Groesse { KLEIN, MITTEL, GROSS, EXTRAGROSS }

Hier haben wir ein Enum namens Groesse erstellt. Es enthält feste Werte KLEIN, MITTEL, GROSS und EXTRAGROSS.

Diese Werte innerhalb der Klammern heißen Enum-Konstanten (Werte).

Hinweis: Enum-Konstanten werden üblicherweise in Großbuchstaben dargestellt.


Beispiel 1: Java Enum

 enum Groesse { KLEIN, MITTEL, GROSS, EXTRAGROSS } class Haupt { public static void main(String[] args) { System.out.println(Groesse.KLEIN); System.out.println(Groesse.MITTEL); } }

Ausgabe:

 KLEIN MITTEL

Wie wir aus dem obigen Beispiel sehen, verwenden wir den Enum-Namen, um auf die konstanten Werte zuzugreifen.

Außerdem können wir Variablen von Enum-Typen erstellen. Zum Beispiel:

 Groesse pizzaGroesse;

Hier ist pizzaGroesse eine Variable vom Groesse-Typ. Sie kann nur mit 4 Werten zugewiesen werden.

 pizzaGroesse = Groesse.KLEIN; pizzaGroesse = Groesse.MITTEL; pizzaGroesse = Groesse.GROSS; pizzaGroesse = Groesse.EXTRAGROSS;

Beispiel 2: Java Enum mit der switch-Anweisung

 enum Groesse { KLEIN, MITTEL, GROSS, EXTRAGROSS } class Test { Groesse pizzaGroesse; public Test(Groesse pizzaGroesse) { this.pizzaGroesse = pizzaGroesse; } public void pizzaBestellen() { switch(pizzaGroesse) { case KLEIN: System.out.println("Ich habe eine kleine Pizza bestellt."); break; case MITTEL: System.out.println("Ich habe eine mittlere Pizza bestellt."); break; default: System.out.println("Ich weiß nicht, welche ich bestellen soll."); break; } } } class Haupt { public static void main(String[] args) { Test t1 = new Test(Groesse.MITTEL); t1.pizzaBestellen(); } }

Ausgabe:

 Ich habe eine mittlere Pizza bestellt.

Im obigen Programm haben wir einen Enum-Typ Groesse erstellt. Dann deklarierten wir eine Variable pizzaGroesse vom Groesse-Typ.

Hier kann die Variable pizzaGroesse nur mit 4 Werten zugewiesen werden (KLEIN, MITTEL, GROSS, EXTRAGROSS).

Beachten Sie die Anweisung:

 Test t1 = new Test(Groesse.MITTEL);

Sie ruft den Test()-Konstruktor innerhalb der Test-Klasse auf. Jetzt wird die Variable pizzaGroesse mit der MITTEL-Konstante zugewiesen.

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


Enum-Klasse in Java

In Java werden Enum-Typen als eine spezielle Art von Klasse betrachtet. Sie wurde mit Java 5 eingeführt.

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

 enum Groesse { konstante1, konstante2, …, konstanteN; // Methoden und Felder }

Wenn wir eine Enum-Klasse erstellen, erstellt der Compiler Instanzen (Objekte) jeder Enum-Konstanten. Auch ist jede Enum-Konstante standardmäßig public static final.


Beispiel 3: Java Enum-Klasse

 enum Groesse{ KLEIN, MITTEL, GROSS, EXTRAGROSS; public String groesseAbrufen() { // this bezieht sich auf das Objekt KLEIN switch(this) { case KLEIN: return "klein"; case MITTEL: return "mittel"; case GROSS: return "groß"; case EXTRAGROSS: return "extragroß"; default: return null; } } public static void main(String[] args) { // groesseAbrufen() aufrufen // mit dem Objekt KLEIN System.out.println("Die Größe der Pizza ist " + Groesse.KLEIN.groesseAbrufen()); } }

Ausgabe:

 Die Größe der Pizza ist klein

Im obigen Beispiel haben wir eine Enum-Klasse Groesse erstellt. Sie hat vier Konstanten KLEIN, MITTEL, GROSS und EXTRAGROSS.

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

Hier innerhalb der main()-Methode haben wir die Instanz KLEIN verwendet, um die groesseAbrufen()-Methode aufzurufen.

Hinweis: Wie reguläre Klassen kann eine Enum-Klasse auch Konstruktoren enthalten. Mehr dazu unter Java Enum-Konstruktor.


Methoden der Java Enum-Klasse

Es gibt einige vordefinierte Methoden in Enum-Klassen, die sofort einsatzbereit sind.

1. Java Enum ordinal()

Die ordinal()-Methode gibt die Position einer Enum-Konstante zurück. Zum Beispiel:

 ordinal(KLEIN) // gibt 0 zurück

2. Enum compareTo()

Die compareTo()-Methode vergleicht Enum-Konstanten basierend auf ihrem Ordinalwert. Zum Beispiel:

 Groesse.KLEIN.compareTo(Groesse.MITTEL) // gibt ordinal(KLEIN) - ordinal(MITTEL) zurück

3. Enum toString()

Die toString()-Methode gibt die String-Repräsentation der Enum-Konstanten zurück. Zum Beispiel:

 KLEIN.toString() // gibt "KLEIN" zurück

4. Enum name()

Die name()-Methode gibt den definierten Namen einer Enum-Konstante in String-Form zurück. Der Rückgabewert der name()-Methode ist final. Zum Beispiel:

 name(KLEIN) // gibt "KLEIN" zurück

5. Java Enum valueOf()

Die valueOf()-Methode nimmt einen String entgegen und gibt eine Enum-Konstante mit demselben Stringnamen zurück. Zum Beispiel:

 Groesse.valueOf("KLEIN") // gibt Konstante KLEIN zurück.

6. Enum values()

Die values()-Methode gibt ein Array des Enum-Typs zurück, das alle Enum-Konstanten enthält. Zum Beispiel:

 Groesse[] enumArray = Groesse.values();

Warum Java Enums?

In Java wurde Enum eingeführt, um die Verwendung von int-Konstanten zu ersetzen.

Angenommen, wir haben eine Sammlung von int-Konstanten verwendet.

 class Groesse { public final static int KLEIN = 1; public final static int MITTEL = 2; public final static int GROSS = 3; public final static int EXTRAGROSS = 4; }

Hier entsteht das Problem, wenn wir die Konstanten ausgeben. Denn es wird nur die Zahl gedruckt, was nicht hilfreich sein könnte.

Statt int-Konstanten zu verwenden, können wir einfach Enums nutzen. Zum Beispiel:

 enum Groesse { KLEIN, MITTEL, GROSS, EXTRAGROSS }

Dies macht unseren Code intuitiver.

Außerdem bietet Enum Compile-Zeit-Typsicherheit.

Wenn wir eine Variable vom Groesse-Typ deklarieren. Zum Beispiel:

 Groesse groesse;

Hier ist garantiert, dass die Variable einen der vier Werte hält. Versuchen wir, Werte außer diesen vier zu übergeben, generiert der Compiler einen Fehler.

Java

  1. C-Enums meistern: Definition, Deklaration & Flag-Operationen
  2. Java Operatoren meistern: Typen, Syntax und praktische Beispiele
  3. Java Kommentare: Typen, Verwendung und Best Practices
  4. Java Enhanced For-Schleife meistern: Syntax, Beispiele und Best Practices
  5. Java Strings meistern: Erstellung, Methoden und Best Practices
  6. Java-Schnittstellen meistern: Konzepte, Implementierung und Best Practices
  7. Java anonyme innere Klassen meistern: Definition, Syntax und praktische Beispiele
  8. Java Enums meistern: Vollständiger Leitfaden zu Enums & Enum-Klassen
  9. Java Enum-Konstruktoren erklärt mit praktischem Beispiel
  10. String-Repräsentationen in Java Enums meistern