文章目录
概述:一个class和object具有同样的名字。这个Object称为伴生对象,这个class称为伴生类。
- 伴生对象必须要和伴生类取相同的名字
- 伴生对象和伴生类在同一个scala源文件中
- 伴生对象和伴生类可以相互访问private属性
为什么用:在Java中,经常有一些类,同时有实例成员又有静态成员,要想实现类似的效果,可以使用伴生对象来实现。
需求:
- 编写一个Generals类,具有一个toWar方法,打印
武将拿着xxx武器,上阵杀敌! //注意:表示武器的名字
- 编写一个Generals伴生对象,定义一个私有变量,用于保存武器名层
- 创建Generals对象,调用toWar方法
参考代码:
package 类和对象.伴生对象
object demo {
//1.定义伴生类,里面写的都是非静态的
class Ganerals{
//2.定义伴生方法
def toWar(): Unit = println(s"武将拿着${Ganerals.armsName}武器,上阵杀敌!")
}
//3.定义伴生对象,里面写的都是静态的
object Ganerals{
//4.定义一个私有的成员变量,用来保存武器的名称
private var armsName= "青龙偃月刀"
}
def main(args: Array[String]): Unit = {
var ganerals=new Ganerals();
ganerals.toWar();
}
}
结果: