伴生对象
在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);
}
}
类与伴生对象可以相互访问私有方法。它们必须存在同一个源文件中
。