Scalaでオブジェクトを作成してみる その3

2013年2月4日 Posted by PURGE

どうやら、コンストラクタ引数に var を付けると、privateフィールド(クラスメンバー)を作成してくれ、しかも getter/setterを作成してくれるみたい。

Main.scala

package com.whoocus

object Main {

  def main(args: Array[String]): Unit = {
    var bird = new Bird("ハヤブサ")
    
    println("こんにちは。 " + bird.name + "さん!!!")
    
  }
}

Bird.scala

package com.whoocus

class Bird (var name :String){

}

便利なのかどうなのか?

ちなみに、getter/setterメソッドは、publicメソッドらしいので、値を変更もできるようだ。
Main.scala

package com.whoocus

object Main {

  def main(args: Array[String]): Unit = {
    var bird = new Bird("ハヤブサ")
    
    println("こんにちは。 " + bird.name + "さん!!!")

    bird.name = "Falcon"
    println("こんにちは。 " + bird.name + "さん!!!")
    
  }
}

出力結果

こんにちは。 ハヤブサさん!!!
こんにちは。 Falconさん!!!

ちなみに、コンストラクタ変数を private宣言すると、private変数となり、getter/setterメソッドは作成されないようだ。

class Bird (var name :String, private var call :String){
}

エラーでメソッドは呼べません。

    println("返事は、" + bird.call + "!!!")

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です