どうやら、コンストラクタ引数に 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 + "!!!")