首页投稿(暂停使用,暂停投稿)@IT·互联网大数据,机器学习,人工智能

快学Scala4-对象

2016-08-07  本文已影响0人  Codlife

参考文献:《快学Scala》第五章

一:类-伴生对象

object TestObject {
  private var lastNumber=0
  private def newUniqueNumber()={
    lastNumber+=1
    lastNumber
  }
}
class TestObject{
  val id=TestObject.newUniqueNumber()
  private var balance= 0.0
  def deposit(amount:Double){balance += amount}
}

二:扩展类 或 trait 的对象

一个object 可以扩展类以及一个或多个trait
针对下面的类:
val actions= Map("open" -> DoNothingAction,"save" -> DoNothingAction)*/

abstract class UndoableAction(val desc:String){
  def undo():Unit
  def redo():Unit
}
object DoNothingAction extends UndoableAction("do nothing"){
  override def undo(){}
  override def redo(){}
}

三:apply 方法

注意 Array(100) 和new Array(100)的区别
前者:应用了apply 方法,产生一个元素
后者定义了100个值为null 的元素
自定义apply 实例:

val acct=Account(100) //使用apply
val acct=new Account(100) //使用 构造方法*/
class Account private(val value:Double){
  private var v=value
}
object Account{
  def apply(value:Double): Unit ={
    new Account(value)
  }
}

Tips:学习大数据技术Spark ,Scala 的重要性不言而喻,希望筒子们好好学习Scala!

上一篇下一篇

猜你喜欢

热点阅读