伴生類和伴生對象


// 伴生對象
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

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM