Enum列舉型別比值

2021-07-10 04:53:15 字數 491 閱讀 8907

在編碼時,兩個enum例項,直接用==就可以比較它們的值了,而不是比較這兩個object的位址。這顯然和通常的object不一樣。而且,在jdk7之後,列舉還能用在switch-case開關語句中。

enum不是primitive型別,卻可以用==比較,這是為什麼呢?enum本身可以是多例項的,關鍵在於,它的每個值對應唯一的object,因此,它有幾個值,就生成幾個例項。所有相關的變數都是代表這幾個例項的,自然要麼==,要麼!=,比較值和比較位址是一樣的。

看下面的例程:

public enum aa); 

aa aa2 = aa.aa;

system.out.println(aa1.ordinal() == aa2.ordinal());

system.out.println(aa1 == aa2);

} }

在程式中,使用反射機制建立了兩個列舉物件並使用==進行比較,從而說明enum並沒有什麼特殊之處。

列舉型別(enum)

enum 是計算機程式語言中的一種資料型別 列舉型別。應用場景 有些變數的取值被要求在乙個確定的範圍內,例如一周有 7天,一年 12個月,或者使用者自定義的今天安排要學習的百家姓有 4個等等。定義 在列舉型別的定義中列舉出所有的可能取值,該變數的取值只能是所列舉的範圍。格式 enum 列舉名 enu...

enum列舉型別。

列舉 定義常量符號,就是巨集定義常數的集合體 比如 四季,星期,意義相關的常數 狀態機 1 根據當前狀態,這個週期結束,就成了下乙個狀態。2 根據你的當前狀態,還和你的輸入有關。比如 fpga,gui 通過列舉,可以將一些常量賦值給某些固定的字串常量。可以通過改變列舉型別的狀態來達到自己的一些目的。...

enum列舉型別

public enum mm aa,bb,cc,dd enum列舉定義好之後,經過編譯後,會變成乙個類,類裡面包含了所有的列舉常量,對於每個列舉常量,主要包含了2個內容 name 和 ordinal,name就是名字,比如上面的 aa,bb 這些就是名字,ordinal 是 int 型別,儲存的是位...