在看《快学scala》这本书的时候 对第五章的习题2和习题8 产生疑惑:
2.写一个BankAccount类 加入deposit和withdraw方法 只读的balance属性
8.
对只读属性这里产生了疑惑。2题代码一开始是
class BankAccount(val balance:Int){
...
}
但是立马发现如此一来不能这样写deposit方法:
def deposit(money:Int){
balance+=money
}
因为不能改变val(val的值永不改变) 的值,但是怎样实现deposit方法呢? 就回去好好翻了翻书 才看明白原来只读属性不是代表必须就是val 之前理解错了,我总结有两种方法:
1.用val修饰 这种适合对象一旦产生就不会改变的属性
2.可以写成private var …. 然后自己写出其getter方法
如本例解决方法:
class BankAccount{
private