Java自定義Enum的實現(xiàn)示例
Java 枚舉是一個特殊的類,一般表示一組常量,比如一年的 4 個季節(jié),一年的 12 個月份,一個星期的 7 天,方向有東南西北等。
一、常量:
Java 枚舉類使用enum關(guān)鍵字來定義,各個常量使用逗號“,”來分割。
定義一個顏色的枚舉類:
enum Color {
RED, GREEN, BLUE;
} 測試代碼:
public class Test {
// 執(zhí)行輸出結(jié)果
public static void main(String[] args) {
Color c1 = Color.RED;
System.out.println(c1);
}
}
// 運行結(jié)果
RED二、switch:
switch 語句中的變量類型可以是: byte、short、int 或者 char。從 Java SE 7 開始,switch 支持字符串 String 類型了,同時 case 標簽必須為字符串常量或字面量。
示例:
enum ColorEnum {
RED, GREEN, BLUE;
}
public class MyClass {
public static void main(String[] args) {
ColorEnum color= ColorEnum.BLUE;
switch(color) {
case RED:
System.out.println("紅色");
break;
case GREEN:
System.out.println("綠色");
break;
case BLUE:
System.out.println("藍色");
break;
}
}
}運行結(jié)果:
藍色
三、常用方法:
values(), ordinal() 和 valueOf() 方法
enum 定義的枚舉類默認繼承了 java.lang.Enum 類,并實現(xiàn)了 java.lang.Serializable 和 java.lang.Comparable 兩個接口。
values(), ordinal() 和 valueOf() 方法位于 java.lang.Enum 類中:
- values() 返回枚舉類中所有的值。
- ordinal()方法可以找到每個枚舉常量的索引,就像數(shù)組索引一樣。
- valueOf()方法返回指定字符串值的枚舉常量。
enum Color
{
RED, GREEN, BLUE;
}
public class Test
{
public static void main(String[] args)
{
// 調(diào)用 values()
Color[] colors = Color.values();
// 迭代枚舉
for (Color color : colors)
{
// 查看索引
System.out.println(color + " at index " + color.ordinal());
}
// 使用 valueOf() 返回枚舉常量,不存在的會報錯 IllegalArgumentException
System.out.println(Color.valueOf("RED"));
// System.out.println(Color.valueOf("WHITE"));
}
}執(zhí)行以上代碼輸出結(jié)果為:
RED at index 0
GREEN at index 1
BLUE at index 2
RED
四、枚舉類成員
枚舉跟普通類一樣可以用自己的變量、方法和構(gòu)造函數(shù),構(gòu)造函數(shù)只能使用 private 訪問修飾符,所以外部無法調(diào)用。
枚舉既可以包含具體方法,也可以包含抽象方法。 如果枚舉類具有抽象方法,則枚舉類的每個實例都必須實現(xiàn)它。
enum Color
{
RED, GREEN, BLUE;
// 構(gòu)造函數(shù)
private Color()
{
System.out.println("Constructor called for : " + this.toString());
}
public void colorInfo()
{
System.out.println("Universal Color");
}
}
public class Test
{
// 輸出
public static void main(String[] args)
{
Color c1 = Color.RED;
System.out.println(c1);
c1.colorInfo();
}
}執(zhí)行以上代碼輸出結(jié)果為:
Constructor called for : RED
Constructor called for : GREEN
Constructor called for : BLUE
RED
Universal Color
到此這篇關(guān)于Java自定義Enum的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)Java自定義Enum內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決java.lang.ClassCastException的java類型轉(zhuǎn)換異常的問題
這篇文章主要介紹了解決java.lang.ClassCastException的java類型轉(zhuǎn)換異常的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
基于Jav POI實現(xiàn)Excel多級表頭導(dǎo)出的完整方案
在日常的 Java 開發(fā)中,Excel 導(dǎo)出是高頻需求,而多級表頭 + 單元格合并的場景更是常見,,本文基于 Apache POI 框架,結(jié)合實際政務(wù)項目案例,詳解如何通過自定義注解 + 工具類的方式,需要的朋友可以參考下2026-02-02

