伴生类和伴生对象

匿名 (未验证) 提交于 2019-12-02 23:57:01
// 伴生对象 object Ass{}  // 伴生类 class Ass{}

要求: 伴生类和伴生对象要在同一个.scala文件并且名字相同

Java的静态成员和非静态成员都写在一个类里. 而scala静态成员需要写写在伴生对象里面.

伴生类需要用 new 来创建,而伴生对象不用new.

使用伴生对象创建伴生类的实例需要定义apply()方法

package base   object runDM {   def main(args: Array[String]): Unit = {      //    // Array的伴生类和伴生对象     //    // 伴生类方式创建     //    val arrC = new Array[Int](5)     //    // 伴生对象方式创建     //    val arrO = Array[Int](5)      // new 创建Ass类     val assC = new Ass("new create!")     // 使用伴生对象隐式使用apply方法创建 Ass类对象     val assO = Ass("create!")      println(assC.getName)     println(assO.getName)    } }  // Ass类的伴生对象 object Ass {    // 静态方法   def show(): Unit = {     println("Object Ass!")   }    // apply方法需要 (), 类似于Ass类的构造器   def apply(): Ass = new Ass()    def apply(name: String): Ass = new Ass(name)  }  // Ass object的伴生类 class Ass {    private var name: String = _    def this(name: String) {     this()     this.name = name   }    def getName: String = this.name  }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!