scala/ScalaBook/chapter-02/InnerClasses.scala

class BankAccount(val number : Long) {
   private var balance = 0L
   private var lastAct: Action = null
   val act = "hoho!"
   class Action(val act: String, val amount: Long) {
     override def toString = 
       number + ": " + act + " " + amount + (BankAccount.this.act)
   }

   def deposit(amount: Long) {
     balance += amount
     lastAct = new Action("deposit",amount)
   }

   def withdraw(amount: Long) {
     balance -= amount
     lastAct = new Action("withdraw",amount)
   }
  
   def getLastAct = lastAct.toString
}

var x = new BankAccount(1234445556)
x.deposit(400)
println("++++++++++++++++++++++++")
println(x.getLastAct)
println("++++++++++++++++++++++++")
println(x.act)