English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Tutorial werden wir die Enums in Java lernen. Wir werden unter Verwendung von Beispielen die Erstellung und Verwendung von Enums und Enum-Klassen lernen.
In Java ist ein Enum ein Typ mit einem festen Satz möglicher Werte. Wir verwenden den enum-Schlüssel, um ein Enum zu deklarieren. Zum Beispiel:
enum Size { KLEIN, MEDIUM, GRÜSS, ÜBERGRÖßEN }
Hier erstellen wir eine nach Size benannte Enum.
Die Werte innerhalb der Klammern werden als Enum-Werte (Konstanten) bezeichnet. Dies sind die einzigartigen Werte, die ein Enum-Typ beibehalten kann.
Beachten Sie:Enum-Konstanten werden normalerweise in Großbuchstaben dargestellt.
Lassen Sie uns ein einfaches Beispiel nennen.
enum Size { KLEIN, MEDIUM, GRÜSS, ÜBERGRÖßEN } class Main { public static void main(String[] args) { System.out.println(Size.SMALL); System.out.println(Size.MEDIUM); } }
Ausgaberesultat
SMALL MEDIUM
Aus dem obigen Beispiel kann man erkennen, dass wir Konstantenwerte durch Enum-Namen ansprechen.
Gleichzeitig können wir Variablen von Enum-Typen erstellen. Zum Beispiel,
Size pizzaSize;
Hier ist pizzaSize eine Variable des Typs Size. Sie kann nur4Werte.
pizzaSize = Size.SMALL; pizzaSize = Size.MEDIUM; pizzaSize = Size.LARGE; pizzaSize = Size.EXTRALARGE;
enum Size { KLEIN, MEDIUM, GRÜSS, ÜBERGRÖßEN } class Test { Size pizzaSize; public Test(Size pizzaSize) { this.pizzaSize = pizzaSize; } public void orderPizza() { switch(pizzaSize) { case SMALL: System.out.println("Ich habe einen kleinen Pizzabrot bestellt."); break; case MEDIUM: System.out.println("Ich habe eine mittlere Pizza bestellt."); break; default: System.out.println("Ich weiß nicht, welche ich bestellen soll."); break; } } } class Main { public static void main(String[] args) { Test t1 = new Test(Size.MEDIUM); t1.orderPizza(); } }
Ausgaberesultat
Ich habe eine mittlere Pizza bestellt.
In dem obigen Programm haben wir einen Enum-Typen Size erstellt. Dann haben wir eine Variable pizzaSize des Typs Size deklariert.
Die Variable pizzaSize kann nur4Werte (SMALL, MEDIUM, LARGE, EXTRALARGE).
Die Variable pizzaSize wurde der Konstante MEDIUM zugewiesen. Basierend darauf wird eine der Fälle des switch-case-Statements ausgegeben.
In Java werden Enum-Typen als eine spezielle Art von Klasse betrachtet. Es ist in Java 5In der Version eingeführt.
Eine enum-Klasse kann wie eine reguläre Klasse Methoden und Felder enthalten.
enum Size { constant;1, constant;2, ..., constantN; //Methoden und Felder }
枚举常量始终默认为public static final。
Wenn eine enum-Klasse erstellt wird, erstellt der Compiler auch Instanzen (Objekte) für jeden enum-Konstanten.
enum Size{ SMALL, MEDIUM, LARGE, EXTRALARGE; public String getSize() { //Dies wird das Objekt SMALL referenzieren 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) { //Die Methode getSize() wird mit dem Objekt SMALL aufgerufen System.out.println("Die Größe der Pizza ist ", + Size.SMALL.getSize()); } }
Ausgaberesultat
Die Größe der Pizza ist small
Im obigen Beispiel haben wir eine Enum-Klasse Size erstellt. Sie hat vier Konstanten SMALL, MEDIUM, LARGE und EXTRALARGE.
Da Size eine Enum-Klasse ist, erstellt der Compiler automatisch eine Instanz für jede Enum-Konstante.
Innerhalb des main()-Methodenblocks haben wir die Methode getSize() mit dem Beispielobjekt SMALL aufgerufen.
Wie reguläre Klassen können Enum-Klassen auch Konstruktoren enthalten. Weitere Informationen finden Sie unterJava Enum-Konstruktoren.
In der Enum-Klasse gibt es einige vorgegebene Methoden, die jederzeit verwendet werden können.
Die Methode ordinal() gibt die Position der Enum-Konstanten zurück. Zum Beispiel:
ordinal(SMALL) //gibt 0 zurück
Die Methode compareTo() vergleicht Enum-Konstanten basierend auf der Reihenfolge. Zum Beispiel:
Size.SMALL.compareTo(Size.MEDIUM) //gibt ordinal(SMALL) zurück - ordinal(MEDIUM)
Die Methode toString() gibt die Zeichenkette der Enum-Konstanten zurück. Zum Beispiel:
SMALL.toString() //gibt "SMALL" zurück
Die Methode name() gibt den definierten Namen der Enum-Konstanten als String zurück. Der Wert der name()-Methode ist final. Zum Beispiel:
name(SMALL) //gibt "SMALL" zurück
Die Methode valueOf() nimmt einen String an und gibt die Enum-Konstante mit dem gleichen String-Namen zurück. Zum Beispiel:
Size.valueOf("SMALL") //gibt die Konstante SMALL zurück
Die Methode values() gibt ein Array vom Typ Enum zurück, das alle Enum-Konstanten enthält. Zum Beispiel:
Size[] enumArray = Size.value();
In Java wurde enum eingeführt, um die Verwendung von int-Konstanten zu ersetzen.
Angenommen, wir verwenden eine Sammlung von int-Konstanten.
class Size { public final static int KLEIN = 1; public final static int MEDIUM = 2; public final static int GRÜSS = 3; public final static int ÜBERGRÖßEN = 4; }
Hier tritt ein Problem auf, wenn wir die Konstanten ausdrucken. Dies liegt daran, dass nur Zahlen gedruckt werden, was möglicherweise nicht hilfreich ist.
Dadurch können wir einfach Enums verwenden, anstatt int-Konstanten. Zum Beispiel,
enum Size { KLEIN, MEDIUM, GRÜSS, ÜBERGRÖßEN }
Das macht unseren Code übersichtlicher.
Auch bieten Enum-Klassen Sicherheit beim Kompilieren.
Wenn wir eine Variable des Typs Size (wie im obigen Beispiel) deklarieren, können wir sicherstellen, dass diese Variable einen der vier Werte enthält. Versuchen wir, einen anderen Wert zu übergeben, wird der Compiler einen Fehler auswerfen.