Enum使用
http://www.java-cn.com/club/html/40/n-640.html 1、????目的
簡單認為:滿足一些需求
2、????定義、使用
public?enum?SexEnum?{
????male(1),female(0);?? ?
????private?final?int?value;?? ?
????private?SexEnum(int?value){
????????this.value?=?value;
????}
????public?int?getValue(){
????????return?this.value;
????}
}
public?class?TestSexEnum?{
????/*
?????*?@param?args
?????*/
????public?static?void?main(String[]?args)?{
????????System.out.println(SexEnum.male.getValue());
????????for?(SexEnum?item:SexEnum.values()){
????????????System.out.println(item.toString()+item.getValue());
????????}
????}
}
3、與類/接口相比
=與類相同,不同的地方就是寫法不一樣(enum比較簡單,但是寫法比較陌生)
=同樣可以添加方法,屬性
=enum不能繼承類(包括繼承enum),只能實現接口,類無此限制(除非用final來限制)。在這個方面,enum更像interface
=enum只支持public和[default]?訪問修飾,class支持比較豐富
=可以與下面的類比較一下,定義比較相似
Public?class?Sex{
????Public?static?final?Sex?male?=?new?Sex(1);
????Public?static?final?Sex?female?=?new?Sex(0);
?? ?Private?Sex(int?value){
????????This.value?=?value;
}
Public?int?getValue(){
????Return?this.value;
}
}
=調用比較相似
SexEnum.male.getValue()
Sex.male.getValue()
總結:其實完全能夠用class替代enum,個人認為enum是早期面向過程中,簡單數值枚舉集合的一種表示,在java中對enum進行了擴展,讓它只具有類的部分能力,導致結構不清晰,在java中進入enum有畫蛇添足的感覺.
?? ? ? 更為重要的是,我們在進行設計的時候引入enum非常容易偏離OO思想,進入以數據或者過程為中心的路子 -------------------------------------------------------------------------------------------- MyDemo:
public enum TrustPassMember {
??ETTrustPass(128479), // 128479
??PersonTrustPass(228479), // 228479
??MarketTrustPass(328479);// 328479
??private final int value;
??private TrustPassMember(int value) { //定義無參的構造函數
????this.value = value;
??}
??public int getValue() {
????return this.value;
??}
} 獲取enum中對應類型的值: TrustPassMember.?ETTrustPass.getValue()
----------------------------------------------------------------------------------------- 剛在導入一個maven的工程時,出現了編譯不兼容的情況,出現了enum之類的都不可以用,這主要是使用了jdk5.0之前的編譯環境,而jdk1.5之前的版本的編譯環境對jdk1.5之后的是編譯不通過的。 project工程名->Properties->Java Compiler->Compiler compilance level使用1.5以上的
且勾上‘use default compliance settings’
轉載于:https://blog.51cto.com/tianya23/278520
總結
- 上一篇: 爱情三十一课,先信自己
- 下一篇: 金山安全实验室公布中国互联网六大类钓鱼网