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

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

This entry was posted in Scala. Bookmark the permalink.

コメントを残す

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