快学Scala(6)--对象

Posted on 2017-03-26 19:24  paulingzhou  阅读(100)  评论(0编辑  收藏  举报

单例对象:

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
}