快学Scala4-对象

作者: Codlife | 来源:发表于2016-08-07 22:26 被阅读0次

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

一:类-伴生对象

  • 在 java 中,你通常会即用到实例方法又用到静态方法的类。
  • 在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!

相关文章

  • 快学Scala4-对象

    参考文献:《快学Scala》第五章 一:类-伴生对象 在 java 中,你通常会即用到实例方法又用到静态方法的类。...

  • 《快学Scala》——对象、包

    单例对象 Scala没有静态方法或静态字段,可以用object来达到同样目的。 对象本质上可以拥有类的所有特性,只...

  • 快学Scala(Second Edition)第6章(对象)习题

    1. 第一题 代码: 测试代码: 2. 第二题 代码: 测试代码: 3. 第三题 不懂 4. 第四题 代码: 测试...

  • 快学 女神

    三天背三年的英语单词; 三天学三年的初中语法; 三天背三年的高中单词。 你们相信吗?绝对不会相信,...

  • 神奇快学

    你见到三天背会三年的单词吗? 你相信十分能扫三年的单词吗? 你知道初中能学高中的单词吗? ...

  • Scala 摘要

    读《快学Scala 》一书的摘要 Scala 运行于JVM之上,拥有海量类库和工具,兼顾函数式编程和面向对象。 在...

  • 微课:快学、快用、快设计

    《微课:快学、快用、快设计》作者唐绪莹,熊洁。本书作者基于其微课开发的实践和对海量案例的研究,提供了一套有效的微课...

  • less学习,快学快用!

    第一次在简书上写博客,这也是我的第一篇博客! less我应该是css的升级版了哈 _...好处懂的自然懂!less...

  • 古风短句,快发给对象♡

    1、我踏山临水,追寻你一世光辉 2、舞一曲霓裳,倾尽天下,乱世繁华,只为一人 3、我是人间惆怅客,知君何事泪纵横。...

  • 学的快还是忘的快

    先看问题 你或许有这样的困惑,面对层出不穷的技术,学过的东西总是很快就会忘记,这究竟是为什么?有没有什么办法能改变...

网友评论

    本文标题:快学Scala4-对象

    本文链接:https://www.haomeiwen.com/subject/gailsttx.html