Heim  >  Artikel  >  Java  >  Wie definiert Java die Enum-Klasse, um Wert und Beschreibung zu implementieren?

Wie definiert Java die Enum-Klasse, um Wert und Beschreibung zu implementieren?

WBOY
WBOYnach vorne
2023-04-29 15:16:131741Durchsuche

Definieren Sie die Enum-Klasse zum Implementieren von Werten und Beschreibungen

In Computerprogrammiersprachen wie C++ und Java ist der Aufzählungstyp (Enum) ein spezieller Datentyp, der a definieren kann Satz von Werten für eine Variable. Bei Verwendung eines Aufzählungstyps muss der Wert der Aufzählungstypvariablen einer ihrer vordefinierten Werte sein.

1. Mit dem Schlüsselwort class implementierte Aufzählungstypen

Vor JDK5 unterstützte die Java-Sprache keine Aufzählungstypen und konnte nur Klassen zum Simulieren und Implementieren des Aufzählungstyps verwenden.

/** 订单状态枚举 */public final class OrderStatus {    /** 属性相关 */
    /** 状态取值 */
    private final int value;    /** 状态描述 */
    private final String description;    /** 常量相关 */
    /** 已创建(1) */
    public static final OrderStatus CREATED = new OrderStatus(1, "已创建");    /** 进行中(2) */
    public static final OrderStatus PROCESSING = new OrderStatus(2, "进行中");    /** 已完成(3) */
    public static final OrderStatus FINISHED = new OrderStatus(3, "已完成");    /** 构造函数 */
    private OrderStatus(int value, String description) {        this.value = value;        this.description = description;
    }    /** 获取状态取值 */
    public int getValue() {        return value;
    }    /** 获取状态描述 */
    public String getDescription() {        return description;
    }
}

2. Mit dem Schlüsselwort enum implementierter Aufzählungstyp

JDK5 bietet einen neuen Typ-Java-Aufzählungstyp. Eine sehr nützliche Funktion ist die Möglichkeit, einen zu erstellen neuer Typ aus einer endlichen Menge benannter Werte, die als Konstanten verwendet werden können.

/** 订单状态枚举 */public enum OrderStatus {    /** 常量相关 */
    /** 已创建(1) */
    CREATED(1, "已创建"),    /** 进行中(2) */
    PROCESSING(2, "进行中"),    /** 已完成(3) */
    FINISHED(3, "已完成");    /** 属性相关 */
    /** 状态取值 */
    private final int value;    /** 状态描述 */
    private final String description;    /** 构造函数 */
    private OrderStatus(int value, String description) {        this.value = value;        this.description = description;
    }    /** 获取状态取值 */
    public int getValue() {        return value;
    }    /** 获取状态描述 */
    public String getDescription() {        return description;
    }
}

Tatsächlich ist der Enum-Typ ein Syntaxzucker, und der Compiler hilft uns beim Parsen und Kompilieren der Syntax. Durch die Dekompilierung können Sie sehen, dass die Java-Enumeration nach der Kompilierung tatsächlich eine Klasse generiert, die java.lang.Enum erbt und gängige Methoden von Enumerationstypen wie value() und valueOf() hinzufügt.

Das obige ist der detaillierte Inhalt vonWie definiert Java die Enum-Klasse, um Wert und Beschreibung zu implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen