首頁  >  文章  >  Java  >  java如何定義Enum類別實作取值與描述

java如何定義Enum類別實作取值與描述

WBOY
WBOY轉載
2023-04-29 15:16:131742瀏覽

定義Enum類別實作取值與描述

在C 、Java等電腦程式語言中,枚舉類型(Enum)是一種特殊資料類型,能夠為一個變數定義一組預先定義的常量。在使用枚舉類型的時候,枚舉類型變數取值必須為其預先定義的值之一。

1.用class關鍵字實現的枚舉類型

在JDK5之前,Java語言不支援枚舉類型,只能用類別(class)來模擬實作枚舉類型。

/** 订单状态枚举 */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.用enum關鍵字實現的枚舉類型

JDK5提供了一個新的類型-Java的枚舉類型,關鍵字enum可以將一組具名的值的有限集合創建為一種新的類型,而這些具名的值可以作為常數使用,這是一個非常有用的功能。

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

其實,Enum型別就是一個語法糖,編譯器幫我們做了語法的解析與編譯。透過反編譯,可以看到Java枚舉編譯後實際上是產生了一個類,該類繼承了 java.lang.Enum,並添加了values()、valueOf()等枚舉類型通用方法。

以上是java如何定義Enum類別實作取值與描述的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除