desc 列舉型別id 列舉基礎知識梳理

2021-10-25 17:43:50 字數 2246 閱讀 4291

列舉

1.1. 列舉是什麼

列舉,也是一種自定義的引用資料型別。使用關鍵字 enum修飾。

在寫程式的過程中,有些資料取值範圍是有限的,就只有有限的幾個值作為取值範圍。例如:乙個人的性別,只有兩個值可以選擇;例如:乙個用來描述星期幾的變數,取值範圍只有7個;此時,這樣的資料,就可以使用列舉型別來描述。

1.2. 為什麼要使用列舉

使用列舉型別,可以提高**的可讀性。如果沒有列舉,某些變數在定義的時候,取值的可讀性不強,例如:季節。如果沒有列舉,可能使用數字來描述,這樣的可讀性不強。

1.3. 列舉的定義

列舉的定義,其實和類是比較像的。使用關鍵字 enum修飾。列舉,是可以寫在類內的,作為內部列舉。

// 定義乙個列舉,用來表示乙個性別

enum gender {

// 這裡寫這個列舉能取到的所有的值。

// 這些值,都是乙個個的識別符號,遵循大駝峰命名法。

male, female

1.4. 列舉物件的獲取

// 使用 列舉.值 的方式,獲取乙個列舉物件

gender gender = gender.male;

2. 列舉拓展

2.1. 列舉型別詳解

列舉型別,在編譯之後,也會生成.class位元組碼檔案。列舉,可以認為是object的乙個特殊的子類,並且不能被繼承。實際上,列舉的父類是 enum,所有自定義的列舉型別,都是繼承自enum類,而enum類的父類是object。

1. 列舉物件,是可以向上轉型為object型別的

列舉可以繼承到object類中的一些方法在列舉中,可以重寫object類中的一些方法

2.2. 列舉中的成員定義

列舉中,其實也可以和類一樣,定義屬性、方法、構造方法,但是前提條件是: 上方所有的列舉值最後需要新增乙個分號。

2.3. 列舉中的構造方法

列舉中是可以定義構造方法的,但是這裡的構造方法,和類中的構造有區別。

列舉中的構造方法,預設的訪問許可權是 private可以為列舉寫構造方法的過載列舉值,即是乙個列舉靜態物件,在宣告的時候,其實是自動呼叫構造方法例項化的public enum gender {

// 這裡的每乙個值,其實都是當前列舉的乙個靜態屬性

// 這裡,會通過當前列舉的構造方法進行例項化

male("男"), female("女"), unknown("未知");

private string desc; // 對每乙個屬性值的描述

gender(string desc) {

this.desc = desc;

system.out.println("乙個列舉物件被例項化了");

@override

public string tostring() {

return this.desc;

2.4. 列舉值

列舉值,其實是乙個列舉的靜態的物件。在列舉被載入到記憶體的時候,其實是自動呼叫構造方法例項化的。

2.5. 列舉實現介面

與類相同,列舉也可以實現介面,且可以實現多個介面。只需要保證,在列舉中將實現的所有的介面中的所有抽象方法都重寫實現即可。

public enum gender implements gendercomparable {

@override

public int comparetoother(gender other) {

return 0;

2.6. 列舉的內部匿名子類

在列舉中定義的每乙個值,在後面新增大括號,可以形成當前列舉的匿名子類。在匿名子類中,可以對列舉中的方法進行重寫。

public enum season {

spring {

// 這裡,其實就類似於是乙個season的匿名子類

@override

public void showdesc() {

system.out.println("春天來了,萬物復甦。");

// 這個方法,可以寫,但是外部是無法呼叫的

public void show() {

system.out.println("spring show");

summer, autumn, winter;

* 列舉中定義的方法,用來輸出每乙個季節的描述

public void showdesc() {

system.out.println("這是乙個適合學習的季節");

python列舉型別 python基礎 列舉類

python 列舉類 示例 2016 8 30 18 55 25 mengmengcoding coding utf 8 from enum importenum enum是乙個列舉類 month,weekday各為乙個enum類的例項化 month enum month jan feb mar a...

c 基礎 列舉型別

列舉 定義一種列舉型別並且在定義這種型別時我們要指定該型別的所有值 語法 enum 型別名稱 列舉的定義一般和類定義在同一級別,這樣在同乙個命名空間下的所有類都可以使用該列舉型別 方法中和類中也可以 例項 定義乙個列舉型別 enum gender 在放方法中使用 static void main s...

C 基礎 Enum 列舉型別

正文結語 今天來說說 c 語言裡面的列舉型別。在程式中常常會需要對一些現實生活的屬性進行列舉,如性別通常不是男就是女 一周七天 程序狀態定義等。第一種做法我們可以透過 define進行巨集定義 define gender int define male 0 define female 1 defin...