比你想象中還要強大的枚舉類型


  開發中枚舉類型往往被用在可以一一列舉的實例中,比如 enum Color{red,green,blue;}。但是可能你不會注意到它的更強大之處,比如如下問題看看你能作答嗎

  1、枚舉類型可以有構造函數嗎?

  2、枚舉類型可以實現接口、繼承類嗎?

  3、枚舉類型可以有static成員變量和方法嗎?以及可否有實例變量和方法嗎?

  4、枚舉類型可以被繼承嗎?

  。。。。。。。。。。等(打開eclipse一試便知的知識)

  其實enum類型就是一個特殊的java類,它幾乎具有一個java類所具有的大部分功能。它更類似與一個單例類,只不過枚舉是多例的。一下就以單例類對比着說一下。

  一、對自身實例的引用類似。單例類是通過一個static變量引用當前類的一個實例,枚舉中是通過在枚舉定義時添加實例,使用時也是通過 定義類型.枚舉實例 。其實這里的枚舉實例就是枚舉類的一個static成員變量。(只是枚舉類可以定義多個實例)

  二、單例類的構造方法要設置成private以防止別處對此類型進行實例化,枚舉類型類似,它的構造方法也必須得是private或者默認權限類型。

  三、對於單例類通常來說沒必要被繼承,可以加上final修飾一下類。而枚舉類型默認就是final的是不能被繼承的。

  四、單例類當然是可以有static成員變量和方法,也可以有實例變量和方法,枚舉也是。

  五、這點是與單例類不一樣的,枚舉可以實現接口,但不可以繼承類。

  其實枚舉可以有很多應用場景,它幾乎具有一個類的功能,比如可以通過枚舉類實現單例模式。

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM