Scalaにおける**コンストラクタ(constructor)**とは、クラスのインスタンス(オブジェクト)を生成するときに呼び出される特殊な処理です。主に、オブジェクトの初期化を行うために使用されます。Scalaのコンストラクタには以下の2種類があります。
1. 主(プライマリ)コンストラクタ(Primary Constructor)
Scalaでは、クラスの定義と同時に定義されるコンストラクタが「主コンストラクタ」です。これはクラスの宣言部分に含まれる引数リストによって記述され、最も基本的な初期化手段です。
例
特徴
-
コンストラクタ引数は
valまたはvarをつけることで、そのままクラスのフィールドになります。 -
クラス定義のボディ内に記述されたコードは、インスタンス生成時に実行されます。
2. 補助(セカンダリ)コンストラクタ(Auxiliary Constructor)
Scalaでは、thisキーワードを使って補助コンストラクタ(副コンストラクタ)を定義できます。これは主コンストラクタを補完するもので、複数定義可能です。
例
特徴
-
補助コンストラクタは必ず他のコンストラクタ(最終的には主コンストラクタ)を呼び出す必要があります。
-
Javaのようにオーバーロードされた複数のコンストラクタを定義する際に便利です。
コンストラクタと初期化処理
Scalaでは、クラス本体に記述されたすべての文が、主コンストラクタの一部として扱われます。したがって、初期化処理はクラス本体内に直接記述するのが一般的です。
まとめ
| 種類 | 特徴 |
|---|---|
| 主コンストラクタ | クラスの定義と同時に定義され、基本的な初期化処理を担当 |
| 補助コンストラクタ | thisを使って定義し、主コンストラクタを呼び出す必要がある |
| 初期化処理 | クラス本体内に記述し、インスタンス生成時に実行される |
生成日:2025/05/04