Java-Enum Grundlagen

JavaJavaBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden Sie über Enums in Java lernen. Enums sind ein spezieller Datentyp in Java, der uns ermöglicht, eine feste Menge von Konstanten zu definieren. Sie werden lernen, wie man Enums in Java erstellt, verwendet und manipuliert.

Ein Enum erstellen

  1. Erstellen Sie in das Verzeichnis ~/project eine neue Datei mit dem Namen StudentResult.java.
  2. Fügen Sie den folgenden Code hinzu, um ein Enum namens StudentResult zu erstellen:
public enum StudentResult {
    PASS,
    FAIL,
    ABSENT
}

Enums verwenden

  1. Erstellen Sie in das Verzeichnis ~/project eine neue Datei mit dem Namen Demo.java.
  2. Fügen Sie den folgenden Code hinzu, um eine Variable vom Typ des StudentResult-Enums zu erstellen und seine Werte zu verwenden:
public class Demo {
    public static void main(String[] args) {
        StudentResult result1 = StudentResult.ABSENT;
        StudentResult result2 = StudentResult.FAIL;
        StudentResult result3 = StudentResult.PASS;

        System.out.println(result1);
        System.out.println(result2);
        System.out.println(result3);
    }
}
  1. Führen Sie den Code mit dem folgenden Befehl in der Konsole aus:
javac Demo.java && java Demo

Verwendung von Enums mit If-Else-Anweisungen

  1. Fügen Sie den folgenden Code hinzu, um das StudentResult-Enum mit If-Else-Anweisungen zu verwenden:
public class Demo {
    public static void main(String[] args) {
        StudentResult result = StudentResult.FAIL;

        if(result == StudentResult.ABSENT)
            System.out.println("Der Schüler war für die Prüfung abwesend.");

        else if(result == StudentResult.PASS)
            System.out.println("Der Schüler hat die Prüfung bestanden.");

        else if(result == StudentResult.FAIL)
            System.out.println("Der Schüler hat die Prüfung durchgefallen.");
    }
}

Verwendung von Enums mit Switch-Anweisungen

  1. Fügen Sie den folgenden Code hinzu, um das StudentResult-Enum mit Switch-Anweisungen zu verwenden:
public class Demo {
    public static void main(String[] args) {
        StudentResult result = StudentResult.FAIL;

        switch(result) {
            case ABSENT : System.out.println("Der Schüler war für die Prüfung abwesend.");
            break;

            case PASS : System.out.println("Der Schüler hat die Prüfung bestanden.");
            break;

            case FAIL : System.out.println("Der Schüler hat die Prüfung durchgefallen.");
            break;
        }
    }
}

Iterieren über Enums

  1. Fügen Sie den folgenden Code hinzu, um über das StudentResult-Enum zu iterieren:
public class Demo {
    public static void main(String[] args) {
        StudentResult[] resultArr = StudentResult.values();

        for(StudentResult sr : resultArr) {
            System.out.println(sr + " an Index " + sr.ordinal());
        }
    }
}

Verwendung der toString()-Methode von Enums

  1. Fügen Sie den folgenden Code hinzu, um die toString()-Methode von Enums zu verwenden:
public class Demo {
    public static void main(String[] args) {
        for(StudentResult sr : StudentResult.values()) {
            String resultStr = sr.toString();
            System.out.println("Großbuchstaben: " + resultStr);
            System.out.println("Kleinbuchstaben: " + resultStr.toLowerCase());
            System.out.println();
        }
    }
}

Erstellen von Enums aus Strings

  1. Fügen Sie den folgenden Code hinzu, um Enums aus Strings zu erstellen:
public class Demo {
    public static void main(String[] args) {
        String resultStr = "FAIL";
        StudentResult result = StudentResult.valueOf(resultStr);
        System.out.print("Enum aus String: " + result);
    }
}
  1. Führen Sie den Code mit dem folgenden Befehl in der Konsole aus:
javac Demo.java && java Demo

Erstellen von Enums innerhalb von Klassen

  1. Fügen Sie den folgenden Code hinzu, um ein Enum innerhalb einer Klasse zu erstellen und zu verwenden:
public class Student {
    String name;
    StudentResult result;

    // Definiert einen Enum-Typ
    enum StudentResult {
        PASS,
        FAIL,
        ABSENT;
    }

    // Konstruktor
    Student(String s, StudentResult sr) {
        name = s;
        result = sr;
    }

    // Enum if-else-Methode
    public void printResult() {
        if (this.result == StudentResult.ABSENT)
            System.out.println(this.name + " war für die Prüfung abwesend.");

        else if (this.result == StudentResult.PASS)
            System.out.println(this.name + " hat die Prüfung bestanden.");

        else
            System.out.println(this.name + " hat die Prüfung durchgefallen.");
    }

    // Enum-Methode
    public boolean wasAbsent() {
        if (this.result == StudentResult.ABSENT)
            return true;
        else
            return false;
    }

    // Haupte Methode
    public static void main(String[] args) {
        Student s1 = new Student("Justin", StudentResult.ABSENT);
        Student s2 = new Student("Jessica", StudentResult.PASS);

        s1.printResult();
        s2.printResult();

        System.out.println("Student s1 war abwesend: " + s1.wasAbsent());
    }
}
  1. Führen Sie den Code mit dem folgenden Befehl in der Konsole aus:
javac Student.java && javac Demo.java && java Student

Verwenden von EnumSet

  1. Fügen Sie den folgenden Code hinzu, um EnumSet zu verwenden:
import java.util.EnumSet;

enum StudentResult {
    PASS,
    FAIL,
    ABSENT;
}

public class Demo {
    public static void main(String[] args) {
        EnumSet<StudentResult> resultSet1 = EnumSet.of(StudentResult.FAIL, StudentResult.PASS);
        EnumSet<StudentResult> resultSet2 = EnumSet.allOf(StudentResult.class);

        System.out.println("Enum Set-1: " + resultSet1);
        System.out.print("Enum Set-2: " + resultSet2);
    }
}

Verwenden von EnumMaps

  1. Fügen Sie den folgenden Code hinzu, um EnumMaps zu verwenden:
import java.util.EnumMap;
import java.util.Map;

enum StudentResult {
    PASS,
    FAIL,
    ABSENT;
}

public class Demo {
    public static void main(String[] args) {
        EnumMap<StudentResult, String> resultMap = new EnumMap<>(StudentResult.class);
        resultMap.put(StudentResult.PASS, "Student hat die Prüfung bestanden");
        resultMap.put(StudentResult.FAIL, "Student hat die Prüfung durchgefallen");
        resultMap.put(StudentResult.ABSENT, "Student war für die Prüfung abwesend");

        for (Map.Entry<StudentResult, String> e : resultMap.entrySet())
            System.out.println(e.getKey() + " --> " + e.getValue());
    }
}

Zusammenfassung

In diesem Lab haben Sie gelernt, wie man ein Enum erstellt, es mit if-else- und Switch-Anweisungen verwendet, über ein Enum iteriert, seine toString()-Methode verwendet, Enums aus Strings erstellt, ein Enum innerhalb einer Klasse erstellt, EnumSet verwendet, um Enum-Konstanten effizient zu speichern, EnumMaps verwendet, um Schlüssel-Wert-Paare von Enums zu speichern, und konkrete und abstrakte Methoden in Enums verwendet. Sie haben auch gelernt, dass Enums verwendet werden, um eine Sammlung von Konstantenwerten zu definieren und dass sie die Typsicherheit in Java erhöhen.