[Scala學習筆記]伴生物件和伴生類
阿新 • • 發佈:2019-01-25
先看如下程式碼:
輸出結果為:1<span style="font-family:Courier New;font-size:12px;">package com.joseph.test /** * 伴生類和伴生物件 */ /** * 伴生類 */ class School { val id = School.incrementId } /** * 伴生物件 */ object School { private var studentId = 0 private def incrementId = { studentId += 1 studentId } } object Test { def main(args: Array[String]): Unit = { var school = new School println(school.id) } }</span>
在以上程式碼中,同一個檔案中的同名的class School就是object School的伴生類,而object School就是class School的伴生物件。
類是可以訪問伴生物件中的private屬性的。
因為在scala中沒有類似Java的static關鍵字,所以伴生物件提供了這樣的功能,我們可以把伴生物件看成是當前類(class School)的一個靜態方法成員的集合。