scala學(xué)習(xí)筆記-case class

伴生對象
  1. 當(dāng)單例對象與某個類共享同一個名稱時,它就被稱為是這個類的伴生對象
  2. scala類里面沒有靜態(tài)方法和靜態(tài)字段,可通過伴生對象實現(xiàn)
  3. 伴生對象和伴生類可以互相訪問彼此的私有成員
  4. 可通過伴生對象的apply方法,將伴生對象當(dāng)作工廠使用
case class
  1. 創(chuàng)建 case class 和它的伴生 object
  2. 實現(xiàn)了 apply 方法讓你不需要通過 new 來創(chuàng)建類實例
  3. 默認(rèn)為主構(gòu)造函數(shù)參數(shù)列表的所有參數(shù)前加 val
  4. 添加天然的 hashCode、equals 和 toString 方法。
  5. 生成一個 copy 方法以支持從實例 a 生成另一個實例 b
  6. 由于編譯器實現(xiàn)了 unapply 方法,case class 支持模式匹配
  7. 編譯器對case類混入了Product特質(zhì)
  8. 編譯器對case類增加了copy方法;
  9. 伴生對象繼承了AbstractFunction
  10. case類可看作是數(shù)據(jù)對象,不可變的數(shù)據(jù)對象。
  11. 因為case類封裝的數(shù)據(jù)有不變的特點,以及可以進行模式匹配,所以它在actor中經(jīng)常使用,很適合封裝消息在actor之間傳遞。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容