Maison  >  Article  >  Java  >  Comment Java définit-il la classe Enum pour implémenter la valeur et la description ?

Comment Java définit-il la classe Enum pour implémenter la valeur et la description ?

WBOY
WBOYavant
2023-04-29 15:16:131742parcourir

Définissez la classe Enum pour implémenter l'acquisition et la description de valeurs

Dans les langages de programmation informatique tels que C++ et Java, le type d'énumération (Enum) est un type de données spécial qui peut définir un ensemble de constantes prédéfinies pour une variable. Lors de l'utilisation d'un type énumération, la valeur de la variable de type énumération doit être l'une de ses valeurs prédéfinies.

1. Types d'énumération implémentés à l'aide du mot-clé class

Avant JDK5, le langage Java ne prenait pas en charge les types d'énumération et ne pouvait utiliser des classes que pour simuler et implémenter des types d'énumération.

/** 订单状态枚举 */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. Type d'énumération implémenté à l'aide du mot-clé enum

JDK5 fournit un nouveau type - le type d'énumération de Java peut créer un ensemble limité de valeurs nommées en tant que nouveau type, et ces valeurs nommées peuvent être. utilisés comme constantes, ce qui est une fonctionnalité très utile.

/** 订单状态枚举 */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;
    }
}

En fait, le type Enum est un sucre de syntaxe, et le compilateur nous aide à analyser et à compiler la syntaxe. Grâce à la décompilation, vous pouvez voir que l'énumération Java génère en fait une classe après la compilation, qui hérite de java.lang.Enum et ajoute des méthodes courantes de types d'énumération telles que valeurs() et valeurOf().

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer