Scala入門 その3 クラスとオブジェクト
こんにちは、 @kz_morita です。
Scala 入門のメモとして今回は、クラスとオブエクトについてまとめます。
クラス 以下のようなよくある構文でクラスを定義できます。
class ClassName(field1: Int, field2: Int) { // 補助コンストラクタ def this(field1: Int) = this(field1, 0) // メソッド def method1(arg: Int): Int = { arg + field1 } } クラス名を宣言するとプライマリコンストラクタになり、引数もかける感じです。 セカンダリコンストラクタを定義するには、this キーワードを使います。セカンダリコンストラクタないでプライマリコンストラクタを呼ぶために、this(field1, 0) のように呼び出す必要があります。
インスタンスを生成する側は以下のような感じです。
val class1 = new ClassName(1, 10) println(class1.method1(10)) // => 11 val class2 = new ClassName(1) アクセス修飾子 メソッドやフィールドには、Java などと同じようにアクセス修飾子がつけられます。
種類は、private (そのクラス内のみ) と protected クラスのサブクラスのみの公開
限定子を使って、さらに細かくアクセス範囲を限定できるようです。
private[X] val hoge のように書くと、その範囲までアクセスができるようになります。