Java自定義Enum的實現(xiàn)示例
Java 枚舉是一個特殊的類,一般表示一組常量,比如一年的 4 個季節(jié),一年的 12 個月份,一個星期的 7 天,方向有東南西北等。
一、常量:
Java 枚舉類使用enum關鍵字來定義,各個常量使用逗號“,”來分割。
定義一個顏色的枚舉類:
enum Color {
RED, GREEN, BLUE;
} 測試代碼:
public class Test {
// 執(zhí)行輸出結果
public static void main(String[] args) {
Color c1 = Color.RED;
System.out.println(c1);
}
}
// 運行結果
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;
}
}
}運行結果:
藍色
三、常用方法:
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)
{
// 調用 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í)行以上代碼輸出結果為:
RED at index 0
GREEN at index 1
BLUE at index 2
RED
四、枚舉類成員
枚舉跟普通類一樣可以用自己的變量、方法和構造函數(shù),構造函數(shù)只能使用 private 訪問修飾符,所以外部無法調用。
枚舉既可以包含具體方法,也可以包含抽象方法。 如果枚舉類具有抽象方法,則枚舉類的每個實例都必須實現(xiàn)它。
enum Color
{
RED, GREEN, BLUE;
// 構造函數(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í)行以上代碼輸出結果為:
Constructor called for : RED
Constructor called for : GREEN
Constructor called for : BLUE
RED
Universal Color
到此這篇關于Java自定義Enum的實現(xiàn)示例的文章就介紹到這了,更多相關Java自定義Enum內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
基于SpringBoot接口+Redis解決用戶重復提交問題
當網絡延遲的情況下用戶多次點擊submit按鈕導致表單重復提交,用戶提交表單后,點擊瀏覽器的【后退】按鈕回退到表單頁面后進行再次提交也會出現(xiàn)用戶重復提交,辦法有很多,我這里只說一種,利用Redis的set方法搞定,需要的朋友可以參考下2023-10-10
Java中的InputStreamReader和OutputStreamWriter源碼分析_動力節(jié)點Java學院整理
本文通過示例代碼給大家解析了Java中的InputStreamReader和OutputStreamWriter知識,需要的的朋友參考下吧2017-05-05
Spring?Validation中的用戶注冊、JWT令牌之用戶登入功能
本文介紹了使用SpringValidation進行用戶注冊驗證和JWT進行用戶登錄的方法,在用戶注冊時,通過@Validated注解和@Pattern注解對用戶名和密碼進行格式校驗,并使用Result對象返回驗證結果,感興趣的朋友一起看看吧2024-11-11
Springboot內外部logback多環(huán)境配置詳解
本文主要介紹了Springboot內外部logback多環(huán)境配置詳解,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01
Java中comparator接口和Comparable接口的比較解析
這篇文章主要介紹了Java中comparator接口和Comparable接口的比較解析,Java提供了一個用于比較的接口Comparator和Comparable接口,提供了一個比較的方法,所有實現(xiàn)該接口的類,都動態(tài)的實現(xiàn)了該比較方法,需要的朋友可以參考下2023-08-08

