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