在Scala中,方法也可以访问该类的所有对象的私有字段,成为类私有字段;
但在Scala中,允许定义更加严格的字段访问控制,通过private[this]来实现,称为对象私有字段,即只能在对象内部访问的字段
private[this]作用:限制属性只能被当前对象访问(一个)
可以通过对象的方法去访问balance
以下
object day22 {
//银行账户
//private[this]:这个属性,只能在当前对象使用
class BankAccount(private var balance:Int ){
def showMoney():Unit = {
println(s"现在余额是:${balance}")
}
def deposit(money:Int):Unit = {
balance += money
}
def withdraw(money:Int):Unit = {
if(money <=balance)
balance -=money
}
//转账
def transfer(to :BankAccount,money:Int):Unit = {
//A--200-->B
//A减少 B 增加
if(money <= balance){
//把自己减少
balance -=money
//把对方增加
to.balance += money
}
}
// def test(to.BankAccount):Unit = {
// to.balance =0
// }
}
object day22_1{
def main(args: Array[String]): Unit = {
var xiaoming = new BankAccount(0)
var xiaohua = new BankAccount(100)
//存入200
xiaohua.deposit(200)
//取出150
xiaohua.withdraw(1500)
//转账给小明
xiaohua.transfer(xiaoming,100)
xiaohua.showMoney()
xiaohua.showMoney()
//println(xiaohua.balance)
}
}
}
举例一个银行账户取钱的例子: