iT邦幫忙

2024 iThome 鐵人賽

DAY 16
0
JavaScript

大樂透對獎系列 第 24

介面

  • 分享至 

  • xImage
  •  

每個列舉成員都會有個名稱與int值,可透過name方法取得名稱,適用於需要使用字串代表列舉值的場合,列舉的int值從0開始,依列舉順序遞增,可以透過ordinal方法取得,適用於需要使用int代表列舉值的場合。

列舉成員重新定義了equals與hashCode,並標示為final,實作邏輯與Object的equals與hashCode相同。

列舉時可以定義方法,然而不能重新定義equals與hashCode,這是因為列舉成員,在JVM只會存在單一實例,編譯器會如上產生final的equals與hashCode,基於Object定義的equals與hashCode,來比較物件相等性。

定義列舉時可以自定義建構式,條件是不得公開或受保護,也不可於建構式中呼super。

建構式定義為private,想在enum中呼叫建構式,只要在列舉成員後加上括號,就可以指定建構式的引數,你不能定義name、ordinal方法,它們是由編譯器產生,因此自定義了value方法來傳回int值。


上一篇
介面
下一篇
介面
系列文
大樂透對獎30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言