どうやら、コンストラクタ引数に var を付けると、privateフィールド(クラスメンバー)を作成してくれ、しかも getter/setterを作成してくれるみたい。
Main.scala
[scala]
package com.whoocus
object Main {
def main(args: Array[String]): Unit = {
var bird = new Bird("ハヤブサ")
println("こんにちは。 " + bird.name + "さん!!!")
}
}
[/scala]
Bird.scala
[scala]
package com.whoocus
class Bird (var name :String){
}
[/scala]
便利なのかどうなのか?
ちなみに、getter/setterメソッドは、publicメソッドらしいので、値を変更もできるようだ。
Main.scala
[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 + "さん!!!")
}
}
[/scala]
出力結果
[bash]
こんにちは。 ハヤブサさん!!!
こんにちは。 Falconさん!!!
[/bash]
ちなみに、コンストラクタ変数を private宣言すると、private変数となり、getter/setterメソッドは作成されないようだ。
[scala]
class Bird (var name :String, private var call :String){
}
[/scala]
エラーでメソッドは呼べません。
[scala]
println("返事は、" + bird.call + "!!!")
[/scala]