特徵:一個單例對象未必是一個伴生對象,但是一個伴生對象一定是一個單例對象
與類名相同並且用Object修飾的對象叫做伴生對象,同樣類被稱爲是這個單例對象的伴生類,類和伴生對象之間可以互相訪問對方的私有方法和屬性
注意:必須在同一個源文件裏定義類和它的伴生對象。
object Lover {
private val ribs = "女人"
def main(args: Array[String]): Unit = {
var l = new Lover
println(l.name)
l.love()
}
}
class Lover{
var name: String = "男人"
private def love():Unit = {
println(s"${name}的第二十四根肋骨是---->${Lover.ribs}")
}
}
class Cat {
private var name: String = "lanmao"
println(Cat.skill)
private def action(): Unit = {
println(s"${name}_${Cat.skill}")
}
}
object Cat {
private val skill = "撓人"
def main(args: Array[String]): Unit = {
val c = new Cat
println(c.name)
c.name = "tumao"
c.action()
}
}