特征:一个单例对象未必是一个伴生对象,但是一个伴生对象一定是一个单例对象
与类名相同并且用Object修饰的对象叫做伴生对象,同样类被称为是这个单例对象的伴生类,类和伴生对象之间可以互相访问对方的私有方法和属性
注意:必须在同一个源文件里定义类和它的伴生对象。
object Lover {private val ribs = "女人"def main(args: Array[String]): Unit = {var l = new Loverprintln(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 Catprintln(c.name)c.name = "tumao"c.action()} }