Scalaの旅3種類
882 ワード
クラスはScalaで静的テンプレートであり、実行時に多くのオブジェクトにインスタンス化できます.以下はPointクラスの定義です.
このクラスは、xとyの2つの変数、moveとtoStringの2つのメソッドを定義します.moveは、2つの整形パラメータを受け入れ、戻り値はありません(Javaでvoidを返すのと同様に、untを暗黙的に返します).toStringはパラメータを受け入れませんが、String値が1つあります.toStringは、事前定義されたtoStringメソッドを再ロードするため、overrideとして識別されます.
クラスはnewによってインスタンスを作成します.たとえば、次のようにします.
プログラムは実行可能プログラムClassesを定義します.メソッドmainは、新しいPointオブジェクトを作成し、ptに格納します.注意valで構築された値はvalで構築された変数とは異なり、前者は変更できません.プログラムの出力は次のとおりです.
(1, 2)
(11, 12)
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)