Java-Enumerationen
Java-Enumerationen
In diesem Tutorial lernen wir Enumerationen 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 Enumeration) ein Typ, der einen festen Satz konstanter Werte hat. Wir verwenden den enum
Schlüsselwort zum Deklarieren von Aufzählungen. Zum Beispiel
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
Hier haben wir eine Aufzählung namens Size erstellt . Es enthält feste Werte SMALL , MITTEL , GROSS , und EXTRALARGE .
Diese Werte in geschweiften Klammern werden Aufzählungskonstanten (Werte) genannt.
Hinweis: Die Aufzählungskonstanten werden normalerweise in Großbuchstaben dargestellt.
Beispiel 1:Java-Enumeration
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
SMALL MEDIUM
Wie wir im obigen Beispiel sehen können, verwenden wir den Aufzählungsnamen, um auf die konstanten Werte zuzugreifen.
Außerdem können wir Variablen von Enum-Typen erstellen. Zum Beispiel
Size pizzaSize;
Hier, pizzaSize ist eine Variable der Size Typ. Es kann nur mit 4 Werten belegt 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
I ordered a medium size pizza.
Im obigen Programm haben wir einen Aufzählungstyp Size erstellt . Wir haben dann eine Variable pizzaSize deklariert der Größe Typ.
Hier die Variable pizzaSize kann nur mit 4 Werten belegt werden (SMALL , MITTEL , GROSS , EXTRAGROSS ).
Beachten Sie die Anweisung,
Test t1 = new Test(Size.MEDIUM);
Es wird Test()
aufgerufen Konstruktor im Test Klasse. Nun, die Variable pizzaSize wird mit dem MEDIUM belegt konstant.
Basierend auf dem Wert wird einer der Fälle der switch case-Anweisung ausgeführt.
Enum-Klasse in Java
In Java werden Enum-Typen als besonderer Klassentyp betrachtet. Es wurde mit der Veröffentlichung von Java 5 eingeführt.
Eine Aufzählungsklasse kann wie normale 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 sind alle Aufzählungskonstanten immer public static final
standardmäßig.
Beispiel 3:Java-Enum-Klasse
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
The size of the pizza is small
Im obigen Beispiel haben wir eine Enum-Klasse Size erstellt . Es hat vier Konstanten SMALL , MITTEL , GROSS und EXTRALARGE .
Seit Größe ist eine Aufzählungsklasse, der Compiler erstellt automatisch Instanzen für jede Aufzählungskonstante.
Hier in der main()
-Methode haben wir die Instanz SMALL verwendet um die getSize()
anzurufen Methode.
Hinweis Hinweis:Wie normale Klassen kann auch eine Aufzählungsklasse Konstruktoren enthalten. Um mehr darüber zu erfahren, besuchen Sie den Java-Aufzählungskonstruktor.
Methoden der Java Enum-Klasse
Es gibt einige vordefinierte Methoden in Enum-Klassen, die leicht verfügbar sind.
1. Java-Enum-Ordinalzahl()
Die ordinal()
Die Methode gibt die Position einer Aufzählungskonstante zurück. Zum Beispiel
ordinal(SMALL)
// returns 0
2. Enum-VergleichTo()
Die compareTo()
-Methode vergleicht die Aufzählungskonstanten basierend auf ihrem Ordinalwert. Zum Beispiel
Size.SMALL.compareTo(Size.MEDIUM)
// returns ordinal(SMALL) - ordinal(MEDIUM)
3. Enum toString()
Die toString()
-Methode gibt die Zeichenfolgendarstellung der Aufzählungskonstanten zurück. Zum Beispiel
SMALL.toString()
// returns "SMALL"
4. Aufzählungsname()
Die name()
-Methode gibt den definierten Namen einer Aufzählungskonstante in Zeichenfolgenform zurück. Der zurückgegebene Wert von name()
Methode ist final
. Zum Beispiel
name(SMALL)
// returns "SMALL"
5. Java-Enum valueOf()
Die valueOf()
Die Methode nimmt einen String und gibt eine Aufzählungskonstante mit dem gleichen Stringnamen zurück. Zum Beispiel
Size.valueOf("SMALL")
// returns constant SMALL.
6. Enum-Werte()
Die values()
-Methode gibt ein Array vom Typ Enum zurück, das alle Enum-Konstanten enthält. Zum Beispiel
Size[] enumArray = Size.value();
Warum Java-Enums?
In Java wurde enum eingeführt, um die Verwendung von int-Konstanten zu ersetzen .
Angenommen, wir haben eine Sammlung von int
verwendet Konstanten.
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;
}
Hier entsteht das Problem, wenn wir die Konstanten drucken. Dies liegt daran, dass nur die Nummer gedruckt wird, was möglicherweise nicht hilfreich ist.
Anstatt also int-Konstanten zu verwenden, können wir einfach Aufzählungen verwenden. Zum Beispiel
enum Size {
SMALL, MEDIUM, LARGE, EXTRALARGE
}
Dadurch wird unser Code intuitiver.
Außerdem bietet enum Sicherheit beim Kompilieren .
Deklarieren wir eine Variable der Size Typ. Zum Beispiel
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.
Java