ただ日々を記すもの

意識高めを装うことができます

【Scala】staticメソッドを定義する

今回書く内容は、 Scalaでstaticメソッドの定義方法

Javaでは

public static void main(String[] args){
}

これでstaticメソッドは定義できる。

しかし、Scalaではstaticメソッド(staticメンバ)を持つことができない

そこで、でてくるのが、 シングルトンオブジェクト という考え方。

定義方法は、以下

object ScalaSample {
  def main(args: Array[String]): Unit = {
  }
}

これで、mainメソッドを記述できたことになる。 ちなみに、シングルトンオブジェクト名はクラス名と同じ名前を同一ファイルで使用できる。
その場合、シングルトンオブジェクトはそのクラスの コンパニオンオブジェクト と呼ばれる。 クラスとそのコンパ二オンオブジェクトは、非公開メンバにもアクセス可能。

以下が簡単な例。

class ScalaSample {
  ScalaSample.sub()
}

// ScalaSampleクラスのコンパニオンオブジェクト
object ScalaSample {  
  def sub() = {
    println("Hello!")
  }
}

subメソッドはstaticメソッドとなる。

Javaでのstaticメソッド = シングルトンオブジェクトのメソッドということ。

おしまい。