48.scala编程思想笔记——统一访问方式和setter
来源:互联网 发布:淘宝云智投软件怎么用 编辑:程序博客网 时间:2024/05/16 06:51
48.scala编程思想笔记——统一访问方式和setter
欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/50447597
源码下载连接请见第一篇笔记。
先看一个例子如下:
import com.atomicscala.AtomicTest._
trait Base {
def f1:Int
def f2:Int
val d1:Int
val d2:Int
var d3:Int
var n = 1
}
class Derived extends Base {
def f1 = 1
val f2 = 1 //Was def, now val
val d1 = 1
// Can't dothis; must be a val:
// def d2 = 1
val d2 = 1
def d3 = n
defd3_=(newVal:Int) = n = newVal
}
val d = new Derived
d.d3 is 1 // Calls getter (line 20)
d.d3 = 42 // Calls setter (line 21)
d.d3 is 42
观察f1和f2定义,发现,在Scala中,可以将无参数且会产生结果的方法当做会产生同种类型结果的val处理。就是统一访问原则的示例。
反过来是不行的,如果基类型中有一个val,那么你不能使用def来实现它。
因为val表示一种承若,即事物不会变更,而def意味着在产生结果的过程中会执行代码。
抽象的var要求除了有getter之外,还需要有setter.
def d3_=(newVal:Int) = n = newVal
是setter的形式。
- 48.scala编程思想笔记——统一访问方式和setter
- 统一访问方式和setter ----《Scala编程思想》
- 12.scala编程思想笔记——类和对象
- 16.scala编程思想笔记——导入和包
- 32.scala编程思想笔记——map和reduce
- 59.scala编程思想笔记——列表和递归
- 2.scala编程思想笔记——运行Scala
- 24.scala编程思想笔记——具名参数和缺省参数
- 55.scala编程思想笔记——标记特征和case对象
- 63.scala编程思想笔记——引用和可修改性
- 66.scala编程思想笔记——构造器和异常
- 3.scala编程思想笔记——编写脚本
- 4.scala编程思想笔记——值
- 5.scala编程思想笔记——数据类型
- 6.scala编程思想笔记——变量
- 7.scala编程思想笔记——表达式
- 8.scala编程思想笔记——条件表达式
- 9.scala编程思想笔记——计算顺序
- 【Java】Java连接sql2008数据库
- 45.scala编程思想笔记——枚举
- Java并发API:闭锁 CountDownLatch
- 46.scala编程思想笔记——抽象类
- 47.scala编程思想笔记——特征
- 48.scala编程思想笔记——统一访问方式和setter
- ORA-03113: end-of-file on communication channel
- 49.scala编程思想笔记——衔接JAVA
- 50.scala编程思想笔记——应用
- C#中的继承
- 51.scala编程思想笔记——浅尝反射
- 52.scala编程思想笔记——多态
- YTU 2983: 小明的生机!
- 53.scala编程思想笔记——组合