黑馬程式員-java的枚舉類型

來源:互聯網
上載者:User

---------------------- android培訓、java培訓、期待與您交流! ----------------------

枚舉類型在看來張老師的交通燈和銀行調度系統後給我的感覺頗深,必須表達一下。

枚舉類型在以前學習c++的時候感覺不深,因為只學了點皮毛,在接觸到java的枚舉後我很驚訝,原來枚舉也是可以有構造方法和抽象方法的,所以不得不談談枚舉。

枚舉類型在張老師的交通燈的項目中發揮了他強大的作用,在銀行調度系統中又再次出現,所有我想,如果不用枚舉,問題將不可能那麼簡單就解決了,同時也更加深刻的意識到了枚舉在java編程中的重要性,所以必須對枚舉有個更深的瞭解,而不是僅僅停留在以前的枚舉是一個常量,當第一個值時等於1的時候,後面的值會自動遞增。

Java的枚舉的每個元素都是一個對象,如

public enum WeekDay{SUN,MON,TUE,WED,THI,FRI,SAT}

中SUN,MON等都是WeekDay的一個對象,既然是對象,WeekDay中的方法SUN都會有,如

public enum WeekDay{SUN,MON,TUE,WED,THI,FRI,SAT;public WeekDay nextDay(){switch(this){case SUN:return MON;case MON:return TUE;case TUE:return WED;case WED:return THI;case THI:return FRI;case FRI:return SAT;case SAT:return SUN;}return null;}}

定義了nextday的方法,運行下面語句

WeekDay a = WeekDay.FRI;System.out.println(a.nextDay()); 

輸出的是SAT。

同樣的,枚舉元素既然是枚舉類的對象,那麼如果在WeekDay 中定義有參的建構函式,傳入String類型的參數,那麼有SUN(“ID”)也就不奇怪了,這裡也不示範了。但是有一點要主要,枚舉類的構造方法要定義成私人的,那樣,就說明該類不能在外部執行個體化對象,也就是你不能在WeekDay外在弄個枚舉元素SUN1,這樣是不行的。其實但我們在WeekDay中定義一個SUN時,其實就是相當於WeekDay  SUN=  new WeekDay(),這種只允許在其內部執行個體話對象的方法很容易讓人想到單例,這樣一想,如果枚舉類型中只有一個枚舉元素時,那就是單例。Java的枚舉類型其實就是經過特殊處理的類。雖然如此,枚舉的重要性不可低估,不然sun公司就不會說丟掉c和c++的累贅的枚舉後又重新找他回來。

---------------------- android培訓、java培訓、期待與您交流! ----------------------
詳細請查看:edu.csdn.net/heima

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.