Scala 的例题:银行账户钱存取功能

private 方法

Scala 复制代码
​
package Test22
// 银行账户
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 增加
  }
}

object Test22_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(xiaohua,100)

    xiaohua.showMoney()
    xiaoming.showMoney()
  }
}

​
复制代码
private[this]方法
Scala 复制代码
package Test22
// 银行账户
class BankAccount(private[this] 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
  }
  // 转账:把当前的账户的余额转出money给to这个账户
  def transfer(to:BankAccount,money:Int):Unit={
    // A  --200--> B
    // A  减少 B 增加
    if(money <= balance){
      //把自己减少
      balance -= money
      //把对方增加
//      to.balance += money
      to.deposit(money)
    }
  }
//  def test(to:BankAccount):Unit={
//    to.balance=0
//  }
}

object Test22_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(xiaohua,100)

    xiaohua.showMoney()
    xiaoming.showMoney()
//    println(xiaohua.balance)
  }
}

Scala 的控制方法作用域有5种:

(1)默认访问权限

(2)protected 访问权限

(3)private 访问权限

(4)privatethis访问权限

(5)privatepackage访问权限

Scala 复制代码
package Test22{

  class C() {
    private[p2] def test(): Unit = {
      println("test")
    }
  }

  object Test22_3 {
    def main(args: Array[String]): Unit = {
      var c1=new C()
      c1.test()
    }
  }
}
相关推荐
hopsky9 天前
《Scala 学习手册》核心内容详解
人工智能·学习·scala
abcy07121319 天前
scala playframework 搭建与新建controller教程
scala
lpfasd12319 天前
编程语言榜单变迁分析
开发语言·后端·scala
戮漠summer1 个月前
Missing Semester 计算机教育中缺失的一课 Lecture 01 Shell
开发语言·后端·scala
醉熏的石头2 个月前
Ubuntu 中的编程语言(中)
linux·ubuntu·scala
Irene19912 个月前
Scala、Java、Python、JavaScript 的核心特性和应用场景(Python 的“单机“局限性:GIL 机制导致的多核并行缺陷)
java·javascript·python·scala
李白的天不白2 个月前
确认 Nginx 配置文件是否真的生效
scala
醉颜凉3 个月前
Scala自定义Monad实战:从理论到应用的完整指南
大数据·算法·scala
那晚的她3 个月前
Scala中Set集合
开发语言·后端·scala
IvanCodes3 个月前
二、Scala流程控制:分支与循环
大数据·scala