Scala之模拟银行账号

23 阅读1分钟
/*模拟银行账号
1.余额
2.存钱
3.取钱
4.转账
*/

object z1118 {
  class Bank(private[this] var balance: Double) {
    // 存钱
    def deposit(amount: Double): Unit = {
      balance += amount
    }
    // 取
    def withdraw(amount: Double): Unit = {
      if (balance >= amount) {
        balance -= amount
      }
    }

    def getBalance(): Double = balance
  }

  object Bank {
    def clear(bank: Bank): Unit = {
     // bank.balance = 0 // 在第11行,添加了private[this] 之后,就不能再直接访问balance属性
    }
  }

  def main(args: Array[String]): Unit = {
    val bank = new Bank(100)

    bank.deposit(1000)
    bank.withdraw(200)

    //  bank.balance == 100
    //  bank.balance == 100

    Bank.clear(bank)
    println(bank.getBalance())
  }
}