黑馬程式設計師 java5的列舉

2021-06-22 17:10:43 字數 1327 閱讀 3717

/*

* 列舉:

* 一、為什麼要有列舉?

* 1、問題:要定義星期幾或性別的變數,該怎麼定義?假設用1—7分別表示星期一到星期日,但有人可能會寫成:int weekday=0;

* * 2、列舉就是要讓某個型別的變數的取值只能為若干個固定值的乙個,否則編譯器就會報錯。列舉可以讓編譯器在編譯時,就可以

* 控制源程式中填寫的非法值,普通變數的方式在開發階段無法實現這一目標

* * 二、用普通類如何實現列舉功能?定義乙個weekday的類來模擬列舉功能

* 1、私有的構造方法

* 2、每個元素分別用乙個公有的靜態成員變數來表示

* 3、可以有若干公有方法或抽象方法。例如:要提供nextday方法必須是抽象的。

* * 三、列舉就相當於乙個類,其中也可以定義構造方法、成員變數、普通方法和抽象方法

* * 四、列舉元素必須位於列舉體中的最開始部分,列舉元素列表的後面有分號與其他成員分隔。把列舉中的成員方法或變數等放在

* 列舉元素的前面,編譯器報告錯誤

* * 五、帶構造方法的列舉

* 1、構造方法必須定義成私有的

* 2、如果有多個構造方法,該如何選擇哪個構造方法?

* 3、列舉元素mon和mon()的效果一樣,都是呼叫預設的構造方法

* * 六、帶方法的列舉

* 1、定義列舉的trafficlamp

* 2、實現普通的lamp方法

* 3、實現抽象的next方法:每個元素分別是由列舉類的子類來生成的例項物件,這些子類採用類似內部類的方式進行定義

* 4、增加上表示時間的構造方法

* * 七、列舉只有乙個成員時,就可以作為一種單例的實現方式

* */public class enumtest; }

public enum weekday

private weekday(int day)

} public enum trafficlamp

},green(45)

},yellow(5)

};public abstract trafficlamp nextlamp();

private int time;

private trafficlamp(int time)

}}/*

執行結果為:

second

first

first

first

first

first

first

frifri

5 sun

7 */

黑馬程式設計師 列舉

asp.net android ios開發 net培訓 期待與您交流!黑馬程式設計師 列舉 一 列舉是什麼?1.列舉就是要讓其個型別的變數的取值只能是若干個固定的值中的乙個,否則編譯器報錯。列舉可以讓編譯器在編譯時就可以控制源程式中趕寫的非法值,普通變數的方式在開發階段無法實現這一目標。2.當列舉中...

黑馬程式設計師 列舉

asp.net unity開發 net培訓 期待與您交流!黑馬程式設計師 列舉 一 基礎概念及定義 定義 是指將變數的值一一列出來,變數的值只限於列舉出來的值的範圍內。格式 訪問修辭符 enum 列舉名 特性 一種特殊形式的類,和普通類一樣也可以宣告屬性,方法及構造。列舉中宣告的每乙個變數代表乙個例...

黑馬程式設計師 列舉

asp.net unity開發 net培訓 期待與您交流!列舉型別的特點 定義乙個列舉型別並在定義這種型別時指定這個型別的所有值。語法 enum gender 列舉的定義一般和類定義個同乙個級別,這樣,在同乙個命名空間下的所有類都可以使用這個列舉了。用法 gender gender gender.m...