伴生對象
- 當(dāng)單例對象與某個類共享同一個名稱時,它就被稱為是這個類的伴生對象
- scala類里面沒有靜態(tài)方法和靜態(tài)字段,可通過伴生對象實現(xiàn)
- 伴生對象和伴生類可以互相訪問彼此的私有成員
- 可通過伴生對象的apply方法,將伴生對象當(dāng)作工廠使用
case class
- 創(chuàng)建 case class 和它的伴生 object
- 實現(xiàn)了 apply 方法讓你不需要通過 new 來創(chuàng)建類實例
- 默認(rèn)為主構(gòu)造函數(shù)參數(shù)列表的所有參數(shù)前加 val
- 添加天然的 hashCode、equals 和 toString 方法。
- 生成一個 copy 方法以支持從實例 a 生成另一個實例 b
- 由于編譯器實現(xiàn)了 unapply 方法,case class 支持模式匹配
- 編譯器對case類混入了Product特質(zhì)
- 編譯器對case類增加了copy方法;
- 伴生對象繼承了AbstractFunction
- case類可看作是數(shù)據(jù)對象,不可變的數(shù)據(jù)對象。
- 因為case類封裝的數(shù)據(jù)有不變的特點,以及可以進行模式匹配,所以它在actor中經(jīng)常使用,很適合封裝消息在actor之間傳遞。