返回到文章

采纳

编辑于

Scala伴生对象

scala
scala


伴生对象

在Java或C++中,你会用到即有实例方法又有静态方法的类。在Scala中,你可以通过类和与同名的“伴生”对象来达到同样的目的。例如:

class Account {
  val id = Account.newUniqueNumber
  private var balance = 0.0

  def deposit(amount: Double){
    balance += amount
  }
}

object Account {
  private var lastNumber = 0;

    private def newUniqueNumber() = {
    lastNumber += 1; lastNumber
  }

  def main(args: Array[String]) {
    val account = new Account();
    val account1 = new Account();
    println(account.id);
    println(account1.id);
  }
}

类与伴生对象可以相互访问私有方法。它们必须存在同一个源文件中