特征:一个单例对象未必是一个伴生对象,但是一个伴生对象一定是一个单例对象
与类名相同并且用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()
}
}