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