scalaでコンストラクタの定義方法
コード
// 基本コンストラクタ
// 基本コンストラクタは、クラス宣言で定義する(クラスのパラメータとして定義する)
class Hoge(s: String, n: Int) {
// 補助コンストラクタ(基本コンストラクタをオーバーロードする場合に定義する。)
// 補助コンストラクタの最初のステップでは、必ず他のコンスとラクアを呼び出す必要がある。
// この仕様に従うと、最後には必ず基本コンストラクタが呼び出される。
def this(s: String) = this (s, 0)
def this(n: Int) = this ("hoge", n)
// コンストラクタの変数は、privateなインスタンス変数となる
override def toString = s + ":" + n
}
object Hoge {
def main(args: Array[String]) {
// 基本コンストラクタに指定した値が出力される。
println(new Hoge("string", 1))
// 補助コンストラクタに指定した値と、補助コンストラクタで指定しているデフォルト値が出力される。
println(new Hoge("hoge"))
println(new Hoge(-1))
}
}
実行結果
string:1
hoge:0
hoge:-1