// 伴生對象
object Ass{}
// 伴生類
class Ass{}
要求: 伴生類和伴生對象要在同一個.scala文件並且名字相同
Java的靜態成員和非靜態成員都寫在一個類里. 而scala靜態成員需要寫寫在伴生對象里面.
伴生類需要用 new 來創建,而伴生對象不用new.
使用伴生對象創建伴生類的實例需要定義apply()方法
package base
object runDM {
def main(args: Array[String]): Unit = {
// // Array的伴生類和伴生對象
// // 伴生類方式創建
// val arrC = new Array[Int](5)
// // 伴生對象方式創建
// val arrO = Array[Int](5)
// new 創建Ass類
val assC = new Ass("new create!")
// 使用伴生對象隱式使用apply方法創建 Ass類對象
val assO = Ass("create!")
println(assC.getName)
println(assO.getName)
}
}
// Ass類的伴生對象
object Ass {
// 靜態方法
def show(): Unit = {
println("Object Ass!")
}
// apply方法需要 (), 類似於Ass類的構造器
def apply(): Ass = new Ass()
def apply(name: String): Ass = new Ass(name)
}
// Ass object的伴生類
class Ass {
private var name: String = _
def this(name: String) {
this()
this.name = name
}
def getName: String = this.name
}