Scala/コンパニオンオブジェクト

Scala/コンパニオンオブジェクト

クラス と同一パッケージ、同一ファイルに存在する クラス と同名の オブジェクト である。 このオブジェクトのことを同名クラスに対しコンパニオンオブジェクトと呼ぶ。コンパニオンオブジェクトに対してはコンパニオンクラスと呼ぶ。

コンパニオンオブジェクトとコンパニオンクラスは互いのスコープに相互にアクセス可能になっている。

Scala は Java のようにクラスに static メソッドをもたせられないのでクラスと関連が深いが単純に処理するだけというメソッドはここに実装することになる。 特に apply メソッドを使ってのインスタンスの生成はよく実装される

class Hoge(_n:String) {
  var n:String = _n
}
object Hoge {
  def apply(n:String):Hoge = {
    new Hoge(n)
  }
}
var hoge:Hoge = Hoge("ほげ") // new を使わないで生成 JavaScript っぽい
scala/companion_object.txt · 最終更新: 2015-08-25 18:44 by ore