Java - Enum-Strings

Hallo dort, aufstrebende Java-Programmierer! Heute werden wir in die faszinierende Welt der Enum-Strings in Java eintauchen. Keine Sorge, wenn du完全 neuer in der Programmierung bist – ich werde dich schrittweise durch diese Einführung führen, genau wie ich es für unzählige Studenten in meinen Jahren des Unterrichtens getan habe. Also, lass uns gemeinsam diese aufregende Reise beginnen!

Java - Enum Strings

Was sind Enums?

Bevor wir uns in Enum-Strings stürzen, beginnen wir mit den Grundlagen. Enums, kurz für "enumerations", sind ein spezieller Typ in Java, der eine feste Menge von Konstanten darstellt. Stelle dir vor, sie wären eine vordefinierte Liste von Optionen, die während der Laufzeit deines Programms nicht ändern.

Stell dir vor, du erstellst ein Programm für eine Kaffeetasse. Du könntest eine feste Reihe von Tassengrößen haben: KLEIN, MITTEL und GROSS. Dies ist ein perfektes Szenario für die Verwendung eines Enums!

So könnten wir diesen Enum definieren:

public enum CupSize {
KLEIN,
MITTEL,
GROSS
}

Nun sieh dir an, wie wir diesen Enum in unserem Code verwenden können:

public class CoffeeShop {
public static void main(String[] args) {
CupSize meineBestellung = CupSize.MITTEL;
System.out.println("Ich hätte gerne einen " + meineBestellung + " Kaffee, bitte!");
}
}

Wenn du diesen Code ausführst, wird er ausgeben: "Ich hätte gerne einen MITTEL Kaffee, bitte!"

Enum-Strings: Ein näherer Blick

Nun, da wir verstehen, was Enums sind, untersuchen wir die Enum-Strings. Standardmäßig verwendet Java den Namen der Enum-Werte als Zeichenkette, wenn du sie ausgibst. Aber was, wenn du die Art und Weise, wie deine Enum-Werte als Zeichenketten dargestellt werden, anpassen möchtest?

Hier kommt die toString()-Methode zum Einsatz. Lassen Sie uns unseren CupSize-Enum verbessern, um mehr beschreibende Zeichenketten bereitzustellen:

public enum CupSize {
KLEIN("Klein (8 oz)"),
MITTEL("Mittel (12 oz)"),
GROSS("Gross (16 oz)");

private final String beschreibung;

CupSize(String beschreibung) {
this.beschreibung = beschreibung;
}

@Override
public String toString() {
return this.beschreibung;
}
}

Lass uns aufschlüsseln, was hier passiert:

  1. Wir haben einen beschreibung-Feld zu unserem Enum hinzugefügt.
  2. Wir haben einen Konstruktor erstellt, der diese Beschreibung als Parameter nimmt.
  3. Wir haben die toString()-Methode überschrieben, um unsere benutzerdefinierte Beschreibung zurückzugeben.

Nun verwenden wir unseren verbesserten Enum:

public class CoffeeShop {
public static void main(String[] args) {
CupSize meineBestellung = CupSize.MITTEL;
System.out.println("Ich hätte gerne einen " + meineBestellung + " Kaffee, bitte!");
}
}

Diesmal wird der Code ausgeben: "Ich hätte gerne einen Mittel (12 oz) Kaffee, bitte!"

Ist das nicht klasse? Wir haben angepasst, wie unsere Enum-Werte als Zeichenketten dargestellt werden!

Arbeiten mit Enum-Strings

Nun, da wir wissen, wie man benutzerdefinierte Zeichenkettenrepräsentationen für unsere Enums erstellt, untersuchen wir einige gängige Operationen, die du mit Enum-Strings durchführen möchtest.

Enum in String konvertieren

Wir haben bereits gesehen, wie man einen Enum in eine Zeichenkette mit der toString()-Methode konvertiert. Es gibt jedoch auch eine andere Methode, um den Namen eines Enum-Konstants als Zeichenkette zu erhalten:

CupSize größe = CupSize.GROSS;
String größenName = größe.name();
System.out.println("Der Enum-Name ist: " + größenName);

Dies wird ausgeben: "Der Enum-Name ist: GROSS"

String in Enum konvertieren

Was, wenn du eine Zeichenkette hast und sie zurück in einen Enum konvertieren möchtest? Du kannst die valueOf()-Methode verwenden:

String größenString = "KLEIN";
CupSize größe = CupSize.valueOf(größenString);
System.out.println("Der konvertierte Enum ist: " + größe);

Dies wird ausgeben: "Der konvertierte Enum ist: Klein (8 oz)"

Über Enum-Werte iterieren

Manchmal möchtest du vielleicht über alle Werte in einem Enum iterieren. Du kannst dies mit der values()-Methode tun:

System.out.println("Verfügbare Tassengrößen:");
for (CupSize größe : CupSize.values()) {
System.out.println("- " + größe);
}

Dies wird ausgeben:

Verfügbare Tassengrößen:
- Klein (8 oz)
- Mittel (12 oz)
- Gross (16 oz)

Praktisches Beispiel: Kaffee-Bestell-System

Lassen Sie uns alles, was wir gelernt haben, in ein umfassenderes Beispiel zusammenfassen. Wir erstellen ein einfaches Kaffee-Bestell-System:

import java.util.Scanner;

public enum CoffeeType {
ESPRESSO("Ein starker Kaffee, der durch das Zwingen von heißen Wasser unter Druck durch fein gemahlenen Kaffebohnen zubereitet wird."),
LATTE("Espresso mit geschäumter Milch und einer kleinen Schicht Milchschnee oben."),
CAPPUCCINO("Gleiche Teile Espresso, geschäumte Milch und Milchschnee.");

private final String beschreibung;

CoffeeType(String beschreibung) {
this.beschreibung = beschreibung;
}

@Override
public String toString() {
return name() + ": " + this.beschreibung;
}
}

public class CoffeeShop {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

System.out.println("Willkommen in unserem Kaffeeladen!");
System.out.println("Hier sind unsere verfügbaren Kaffeetypen:");
for (CoffeeType typ : CoffeeType.values()) {
System.out.println("- " + typ);
}

System.out.print("Welchen Kaffeetyp möchtest du? ");
String benutzerwahl = scanner.nextLine().toUpperCase();

try {
CoffeeType gewählterKaffee = CoffeeType.valueOf(benutzerwahl);
System.out.println("Großartige Wahl! Du hast einen " + gewählterKaffee.name().toLowerCase() + " bestellt.");
} catch (IllegalArgumentException e) {
System.out.println("Entschuldigung, wir haben diesen Kaffeetyp nicht.");
}

scanner.close();
}
}

Dieses Programm führt die folgenden Schritte aus:

  1. Wir definieren einen CoffeeType-Enum mit Beschreibungen für jeden Kaffeetyp.
  2. In der main-Methode zeigen wir dem Benutzer alle verfügbaren Kaffeetypen an.
  3. Wir bitten den Benutzer, einen Kaffeetyp zu wählen.
  4. Wir versuchen, die Eingabe des Benutzers in einen CoffeeType-Enum zu konvertieren.
  5. Wenn erfolgreich, bestätigen wir seine Bestellung. Wenn nicht, informieren wir ihn, dass wir diesen Kaffeetyp nicht haben.

Fazit

Herzlichen Glückwunsch! Du hast gerade eine tiefe Einblicke in die Welt der Enum-Strings in Java gewonnen. Wir haben behandelt, was Enums sind, wie man ihre Zeichenkettenrepräsentationen anpasst und wie man mit ihnen auf verschiedene Weise arbeitet. Bedenke, Enums sind ein leistungsfähiges Werkzeug in Java, das deinen Code lesbarer und weniger fehleranfällig machen kann, wenn du mit einer festen Menge von Konstanten arbeitest.

Wenn du deine Java-Reise fortsetzt, wirst du viele weitere Anwendungen für Enums finden. Sie sind besonders nützlich in switch-Anweisungen, zur Darstellung von Zuständen in einer Zustandsmaschine oder überall, wo du eine feste Reihe von Optionen hast.

Weiter üben, neugierig bleiben und happy coding!

Credits: Image by storyset