一、枚舉類型的介紹
枚舉類型(Enum)是一個特殊的類,它主要用來定義常量集合。與其他語言不同的是,Java中的枚舉類型是一種對象。枚舉類型中的每一個枚舉常量都是該枚舉類型(枚舉類)的實例對象,在枚舉類型中可通過聲明成員變量、方法等擴展功能。
在Java 1.5版本之前,我們通常使用常量集合的方式來實現枚舉類型。這種方式需要定義一組靜態常量,但它並不能完全滿足枚舉類型的需求。過多的靜態常量不方便管理,也有命名衝突的風險,而枚舉類型的出現解決了這些問題。
二、枚舉類型的聲明和使用
聲明一個枚舉類型,可以使用關鍵字enum:
enum Color { RED, GREEN, BLUE; }
枚舉類型中的常量必須寫在枚舉類型的最前面,並且用逗號分隔。每一個常量相當於是一個枚舉類型的實例對象。
使用枚舉類型可以直接引用其中的常量:
Color color = Color.RED; System.out.println(color.toString());//輸出 RED
三、枚舉類型的擴展功能
1.在枚舉類型中定義成員變量:
可以在枚舉類型中定義成員變量,這些成員變量可以在枚舉類型的常量中為不同的枚舉值賦予不同的值:
enum Color { RED("紅色"), GREEN("綠色"), BLUE("藍色"); private String desc; private Color(String desc) { this.desc = desc; } public String getDesc() { return desc; } }
每一個枚舉值都可以有不同的成員變量值,通過調用getDesc()方法可以獲取相應的值。
2.在枚舉類型中定義抽象方法:
可以在枚舉類型中定義抽象方法,枚舉類型中的每個枚舉值 都必須實現這個抽象方法:
enum Color { RED("紅色") { public String getColor() { return "red"; } }, GREEN("綠色") { public String getColor() { return "green"; } }, BLUE("藍色") { public String getColor() { return "blue"; } }; private String desc; private Color(String desc) { this.desc = desc; } public String getDesc() { return desc; } public abstract String getColor(); }
每一個枚舉值必須實現getColor()方法,可以為不同的枚舉值實現不同的方法體。
3.在枚舉類型中定義常規方法:
枚舉類型中可以定義常規方法,這些方法可以被枚舉值所調用:
enum Color { RED("紅色") { public String getColor() { return "red"; } public String getDescUpperCase() { return getDesc().toUpperCase(); } }, ...//省略部分代碼
每一個枚舉值都可以調用getColor()和getDescUpperCase()方法。
四、枚舉類型的遍歷
可以通過枚舉類型的values()方法獲取枚舉值的數組,然後遍歷這個數組即可獲取每一個枚舉值:
enum Color { RED("紅色"), GREEN("綠色"), BLUE("藍色"); private String desc; private Color(String desc) { this.desc = desc; } public String getDesc() { return desc; } } for (Color color : Color.values()) { System.out.println(color.getDesc());//輸出 紅色 綠色 藍色 }
五、總結
枚舉類型是Java語言中一個方便、簡潔、可讀性強的常量集合工具,適用於定義一組有限的常量。枚舉類型可以為其中的每個枚舉值定義不同的行為,將數據與行為在邏輯上組合成一個不可分割的整體,使代碼更加清晰易懂。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/285800.html