scala学习笔记————如何实现类里的只读属性

本文探讨了在Scala中如何实现类的只读属性,通过一个BankAccount类的例子,解释了使用`val`和`private var`以及自定义getter方法来确保属性的只读性。同时,通过四组构造器展示了如何在类中创建只读属性并提供修改值的方法,如deposit和withdraw。这种方法体现了Scala语言的灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在看《快学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 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值