Scalaの旅3種類

882 ワード

クラスはScalaで静的テンプレートであり、実行時に多くのオブジェクトにインスタンス化できます.以下はPointクラスの定義です.
class Point(xc: Int, yc: Int) {
  var x: Int = xc
  var y: Int = yc
  def move(dx: Int, dy: Int) {
    x = x + dx
    y = y + dy
  }
  override def toString(): String = "(" + x + ", " + y + ")";
}

このクラスは、xとyの2つの変数、moveとtoStringの2つのメソッドを定義します.moveは、2つの整形パラメータを受け入れ、戻り値はありません(Javaでvoidを返すのと同様に、untを暗黙的に返します).toStringはパラメータを受け入れませんが、String値が1つあります.toStringは、事前定義されたtoStringメソッドを再ロードするため、overrideとして識別されます.
クラスはnewによってインスタンスを作成します.たとえば、次のようにします.
object Classes {
  def main(args: Array[String]) {
    val pt = new Point(1, 2)
    println(pt)
    pt.move(10, 10)
    println(pt)
  }
}

プログラムは実行可能プログラムClassesを定義します.メソッドmainは、新しいPointオブジェクトを作成し、ptに格納します.注意valで構築された値はvalで構築された変数とは異なり、前者は変更できません.プログラムの出力は次のとおりです.
(1, 2)
(11, 12)