[Java] Aufzählungstyp

//Wenn Sie auf die Saison zugreifen, geben Sie SPRING, Season ein.SPRING
public enum Season {
  SPRING,
  SUMMER,
  AUTUMN,
  WINTER,
}
public class EnumConstClient {

  public static void main(String[] args) {
    var ecs = new EnumConstSeason();
    ecs.processSeason(EnumConstSeason.SPRING);
    ecs.processSeason(4);
    ecs.processSeason(EnumConstMonth.JANUARY);
  }
}

```java
public class EnumSeason {
  public void processSeason(Season season) {
    System.out.println(season);
  }

  public static void main(String[] args) {
    var es = new EnumSeason();
    es.processSeason(Season.SPRING);
 //Season型で定義されてない定数はエラー
 // es.processSeason (4); // Kompilierungsfehler
 // es.processSeason (EnumConstMonth.JANUARY); // Kompilierungsfehler
  }
}
``

# Aufgezählte Mitglieder
 * ** name () **: Liefert den Namen der Aufzählungskonstante
 * ** original () **: Ruft die Reihenfolge der Aufzählungskonstanten ab
 * ** toString () **: Ruft den Namen der Aufzählungskonstante ab. Möglicherweise wurde diese durch die entsprechende Zeichenfolgendarstellung für jeden Typ ersetzt
 * ** values () **: Liefert alle Aufzählungskonstanten
 * ** valueOf (String name) **: Ruft die Aufzählungskonstante vom Namen ab

```java
public class EnumMethod {
  public static void main(String[] args) {
    for (var se : Season.values()) {
      //Indexnummer:Ausgabe nach Namen q
      System.out.println(se.ordinal() + ":" + se.toString());
    }
    //Ruft den Aufzählungstyp aus der Zeichenfolge ab
    var s = Season.valueOf("SPRING");
    System.out.println(s instanceof Season); //true
  }
}

Mitgliederdefinition

//Konstruktor mit Aufzählungskonstante aufrufen
public enum Season {
    SPRING(0, "Frühling"),
    SUMMER(1, "Sommer-"),
    AUTUMN(2, "Herbst"),
    WINTER(4, "Winter");

  //Felddeklaration
  private int code; //Saisoncode
  private String jpName; //Anzeigename
  //Konstrukteur
  private Season(int code, String jpName) {
    this.code = code;
    this.jpName = jpName;
  }
  //Methode
  public int toSeasonValue() {
    return this.code;
  }
  //Getter bereit
  @Override
  public String toString() {
    return this.jpName;
  }

  //public abstract void show();
}
public class EnumBasic {
  public static void main(String[] args) {
    System.out.println(Season.SPRING); //Frühling
    System.out.println(Season.SPRING.toString()); //Frühling
    System.out.println(Season.SPRING.toSeasonValue()); //0
  }
}

Haben Sie Ihre eigene Implementierung jeder Aufzählungskonstante

public enum Season {
  //Aufzählungskonstante
  SPRING(0, "Frühling") {
    @Override
    public void show() {
      System.out.println("Der Frühling ist Akebono");
    }
  },
  SUMMER(1, "Sommer-") {
    @Override
    public void show() {
      System.out.println("Sommer ist Nacht");
    }
  },
  AUTUMN(2, "Herbst") {
    @Override
    public void show() {
      System.out.println("Der Herbst ist Abenddämmerung");
    }
  },
  WINTER(4, "Winter") {
    @Override
    public void show() {
      System.out.println("Arbeite hart im Winter");
    }
  };
  //Felddeklaration
  private int code; //Saisoncode
  private String jpName; //Anzeigename
  //Konstrukteur
  private Season(int code, String jpName) {
    this.code = code;
    this.jpName = jpName;
  }
  //Methode
  public int toSeasonValue() {
    return this.code;
  }

  @Override
  public String toString() {
    return this.jpName;
  }
  //Funktionen, die Aufzählungskonstanten implementieren sollten (abstrakte Methoden)
  public abstract void show();
}
public class EnumMethod {
  public static void main(String[] args) {
    for (var se: Season.values()) {
      se.show(); //Frühling ist neu, Sommer ist Nacht, Herbst ist Abenddämmerung und Winter ist"
    }
  }
}

Bitfield

//Groß- und Kleinschreibung wird nicht berücksichtigt
var ptn = Pattern.compile("^[a-z0-9._-]*",
Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);`
import java.util.regex.Pattern;

public class EnumBit {
  public static void main(String[] args) {
    var flags = Pattern.CASE_INSENSITIVE | Pattern.MULTILINE;
    if ((flags & Pattern.COMMENTS) != 0) {
      System.out.println("KOMMENTARE ist gültig.");
    }
  }
}
//Definition des Aufzählungstyps
public enum PatternFlag {
  UNIX_LINES,
  CASE_INSENSITIVE,
  COMMENTS,
  MULTILINE,
}
//Aufzählungstyp empfangen
Pattern.compile("^[a-z0-9._-]*",
EnumSet.of(PatternFlag.CASE_INSENSITIVE, PatternFlag.MULTILINE));

Recommended Posts

[Java] Aufzählungstyp
Java-Typkonvertierung
Java Optionaler Typ
Java-Doppeltyp
[Java] Express-Aufzählungstyp ohne Verwendung des Aufzählungstyps (Aufzählung)
[Java] Datentyp ①-Basistyp
[Swift] Aufzählungstyp für gemeinsam genutzte Typen
[Java, Kotlin] Typabweichung
Feld für den Java-Klassentyp
Typbestimmung in Java
Java # 1 studieren (typischer Typ)
[Java] Konvertierung des Datumstyps
[Java] Konvertierung von Listentyp / Array-Typ
Java-Lernnotiz (Datentyp)
[Java] Vergleich der Geschwindigkeit der Typkonvertierung
Studieren Sie Java # 7 (Art der Verzweigungssyntax)
Java
Aufzählung aller Kombinationen Java
Java Primer Series (Typkonvertierung)
Java
[Java] Datentyp / Matrixprodukt (AOJ ⑧ Matrixprodukt)
Java (Klassentyp für Feld verwenden)
[Java] Korrekter Vergleich des String-Typs
Verwendung des Java-Aufzählungstyps
Java lernen (0)
[Java Siler] Informationen zur Typinferenz von var
[Java] -Array
Java geschützt
[Java] Modul
Java-Array
[Java] Implizite Typumwandlung (AOJ10-Summe von Zahlen)
Java studieren ―― 9
Java Scratch Scratch
Java-Tipps, Tipps
Konvertierung des Java-Datumsdatentyps (Datum, Kalender, Zeichenfolge)
Java-Methoden
Java-Methode
In Bezug auf den Vergleich der Zeichenfolgentypäquivalenz in Java
Java-Array
[Java] ArrayDeque
[Leicht verständliche Erklärung! ] Konvertierung des Referenztyptyps in Java
Java (Methode)
Java Day 2018
Java-Zeichenfolge
Java (Array)
Java statisch
Java-Serialisierung
Java Anfänger 4
JAVA hat bezahlt
Verwenden Sie den PostgreSQL-Datentyp (jsonb) aus Java
Java studieren ―― 4
Java (gesetzt)
Java-Shell-Sortierung
Erfahren Sie, wie Java die Typintegrität schützt
[Java] compareTo
Java studieren -5
[Java ~ Informationen zur Variablendefinition und Typkonvertierung ~] Studiennotiz