单例对象:
object Accounts { private var lastNumber = 0 def newUniqueNumber() = { lastNumber += 1; lastNumber } }
当应用程序中需要一个新的唯一账号时,调用Account.newUniqueNumber()方法即可
伴生对象:
class Account { val id = Account.newUniqueNumber() private var balance = 0.0 def deposit(amount: Double) {balance+=amount} } object Account { //伴生对象 private var lastNumber = 0 def newUniqueNumber() = { lastNumber += 1; lastNumber } }
apply方法:返回伴生类的对象
def apply(initialBalance: Double) = { new Account(newUniqueNumber(), initialBalance) }
枚举:
object TrafficLightColor extends Enumeration{ // val Red, Yellow, Green = Value val Red = Value(0, "Stop") val Yellow = Value(10) //名称为"Yellow" val Green = Value("Go") //ID为11 }