<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. java語言

    Java為什么要枚舉

    時間:2025-05-08 19:50:57 java語言 我要投稿
    • 相關推薦

    Java為什么要枚舉

      導語:每個元素分別用一個公有的靜態成員變量表示,再組合成類,下面是關于Java語言枚舉的原因,歡迎參考!

      問題:要定義星期幾或性別的變量,該怎么定義?假設用1-7分別表示星期一到星期日,

      但有人可能會寫成int weekday = 0;或即使使用常量方式也無法阻止意外。

      枚舉就是要讓某個類型的變量的取值只能為若干個固定值中的一個,否則,編譯器就會報錯。

      枚舉可以讓編譯器在編譯時就可以控制源程序中填寫的非法值,

      普通變量的方式在開發階段無法實現這一目標。

      **用普通類如何實現枚舉的功能?定義一個Weekday類來模擬實現:

      步驟:

      *私有化構造方法

      *每個元素分別用一個公有的靜態成員變量表示(public static final)

      *可以有若干公有方法或抽象方法。采用抽象方法定義nextDay就將大量的if.else語句

      轉移成了一個個獨立的類。

      **枚舉的應用:

      舉例:定義一個Weekday的枚舉。

      擴展:枚舉類的values,valueOf,name,toString,ordinal等方法

      (記住,講課時要先于自定義方法前介紹,講課更流暢)

      總結:枚舉是一種特殊的類,其中的每個元素都是該類的一個實例對象。

      例如可以調用WeekDay.SUN.getClass().getName和WeekDay.class.getName()。

      **枚舉的高級應用:

      **枚舉就相當于一個類,其中也可以定義構造方法、成員變量、普通方法和抽象方法。

      **枚舉元素必須位于枚舉體中的最開始部分,枚舉元素列表的后要有分號與其他成員分隔。

      把枚舉中的成員方法或變量等放在枚舉元素的前面,編譯器報告錯誤。

      **帶構造方法的枚舉

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

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

      枚舉元素MON和MON()的效果一樣,都是調用默認的構造方法。

      **帶方法的枚舉

      定義枚舉TrafficLamp

      實現普通的next方法

      實現抽象的next方法:每個元素分別是由枚舉類的子類來生成的實例對象,

      這些子類采用類似內部類的方式進行定義。增加上表示時間的構造方法

      **枚舉只有一個成員時,就可以作為一種單例的實現方式。


    【Java為什么要枚舉】相關文章:

    使用Java的枚舉類型的方法03-14

    詳解Java枚舉類型enum及其使用01-06

    Java中的String為什么是不可變的07-10

    為什么要學習PHP?11-30

    C語言的枚舉類型知識07-22

    為什么要考CPA08-14

    為什么要重裝系統05-27

    為什么要學英語寫作05-16

    為什么要學網頁設計06-17

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人