色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java枚舉如何運用

林玟書2年前17瀏覽0評論

java枚舉如何運用?

謝謝邀請,下面介紹一下枚舉的用法

認識枚舉

枚舉就是要讓某個類型的變量的取值只能為若干個固定值中的一個,否則編譯器就會報錯,枚舉可以讓編譯器在編譯時就可以控制源程序賦給的非法值,使用普通變量的方式在開發階段無法實現這一目標.

在JDK1.5之后,使用關鍵字enum定義一種新的類型,稱為枚舉類型。

JDK 1.5 中可以在 switch 表達式中使用Enum定義的枚舉類的對象作為表達式, case 子句可以直接使用枚舉值的名字, 無需添加枚舉類作為限定

枚舉的定義

枚舉的類名建議帶上Enum后綴,枚舉成員需要全大寫,單詞間用下劃線隔開。

枚舉其實是特殊的常量類,且構造方法被默認的強制私有。

正確的命名方式為:

ResultEnum的成員名稱為: SUCCESS / UNKNOWN_REASON。

定義規則如下:

私有化類的構造器。

成員變量如果聲明為final。要在構造器中初始化,不允許被修改、

通過公共方法 調用屬性。

枚舉實例必須在前面

需要在枚舉實例后面加上分號,然后再寫構造函數等。

枚舉類默認提供了values()方法,該方法可以很方便得遍歷所有的枚舉值

枚舉類對象可以有屬性

若枚舉類顯式的定義了帶參數的構造器, 則在列出枚舉值時也必須對應的傳入參數

Enum類 與 enum關鍵字

使用enum 關鍵字定義的枚舉類,實際上就想當于定義了一個類,此類繼承了Enum類而已

集合對枚舉的支持

集合對枚舉的支持,對于Set和Map接口而言又增加了兩個新的子類: EnumSet 、EnumMap兩個類:

enum 類基本用法

我們可以定義一個顏色的枚舉:

怎么調用呢,Java switch語句參數就支持enum類

帶構造方法的枚舉

定義規則:

私有化類的構造器

枚舉實例必須在前面

需要在枚舉實例后面加上分號,然后再寫構造函數等

讓枚舉實現接口

枚舉類可以實現一個或多個接口。與普通類實現接口完全一樣,枚舉類實現接口時,需要實現該接口所包含的方法。

如果需要每個枚舉值在調用同一個方法時呈現不同的行為,則可以讓每個枚舉值在{...}匿名塊中實現自己的業務邏輯

在枚舉中定義抽象方法

enum類是很特殊的一個類,實際上它是一個抽象類。枚舉中可以用抽象方法,但是枚舉中的每一個對象都分別實現抽象方法;

枚舉實現單例類

1、借助JDK1.5添加的枚舉來實現單例模式。不僅能夠避免多線程同步問題,而且還能防止反序列化重新創建新的對象.

2、這種方式是Effective Java 作者 Josh Bloch 提倡的方式

enum類和常量的區別

這種方式在使用上跟枚舉沒有卻別,但是我們為什么選擇枚舉呢?

(1) 、類型不安全: 因為上面的每個顏色實際上時一個int 整數,因此完全可以把一個顏色當成一個int整數使用,例如進行加法運算RED+ GREEN,這樣代碼完全正常

(2) 、 沒有命名空間: 當需要使用顏色時,必須在前面加上COLOR_前綴,否則程序可能與其他類中的靜態常量混淆

。(3) 、 打印輸出的意義不明確:當輸出某個季節時,例如輸出COLOR_RED,實際 上輸出的是1,這個1很難猜測它代表了紅色.

(4) 不容易擴展,每一個key對應一個值,

枚舉類與普通類區別

使用 enum 定義的枚舉類默認繼承了 java.lang.Enum 類

枚舉類的構造器只能使用 private 訪問控制符枚舉類的所有實例必須在枚舉類中顯式列出(, 分隔 ; 結尾). 列出的實例系統會自動添加 public static final 修飾

Enum枚舉類主要方法

values()方法:返回枚舉類型的對象數組。該方法可以很方便地遍歷所有的枚舉值。

valueOf(String str):可以把一個字符串轉為對應的枚舉類對象。要求字符串必須是枚舉類對象的“名字”。如不是,會有運行時異常。

二級java面向對象復習,java枚舉如何運用