首页 > 其他 > 详细

伴生类和伴生对象

时间:2019-09-02 00:50:46      阅读:79      评论:0      收藏:0      [点我收藏+]
// 伴生对象
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

}

伴生类和伴生对象

原文:https://www.cnblogs.com/studyNotesSL/p/11443779.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!