コンストラクター

Javaにおけるコンストラクター(constructor)とは、クラスのインスタンス(オブジェクト)を生成する際に自動的に呼び出される特別なメソッドであり、主にオブジェクトの初期化を目的としています。


コンストラクターの特徴

  1. クラス名と同じ名前を持つ

    • メソッド名ではなく、クラス名と同名で定義します。

  2. 戻り値がない

    • void すら記述しません。戻り値の型を指定しない点が通常のメソッドと異なります。

  3. オーバーロードが可能

    • 引数の数や型が異なる複数のコンストラクターを定義できます。

  4. 自動的に呼び出される

    • new 演算子によってオブジェクトが生成されるときに呼び出されます。


コンストラクターの例

java
public class Person { String name; int age; // コンストラクター(引数なし) public Person() { this.name = "名無し"; this.age = 0; } // コンストラクター(引数あり) public Person(String name, int age) { this.name = name; this.age = age; } }

この例では、Person クラスに以下の2つのコンストラクターがあります:

  • 引数なしのコンストラクター:初期値を設定

  • 引数ありのコンストラクター:外部から値を受け取って初期化


コンストラクターの呼び出し例

java
Person p1 = new Person(); // 「名無し」, 0 で初期化される Person p2 = new Person("山田", 30); // 「山田」, 30 で初期化される

デフォルトコンストラクター

  • 明示的にコンストラクターを定義しない場合、Javaコンパイラが自動的に引数なしのコンストラクターを追加します。

  • しかし、**引数ありのコンストラクターを定義すると、デフォルトコンストラクターは自動生成されません。**必要であれば明示的に定義する必要があります。


this()super()

  • this():同じクラス内の他のコンストラクターを呼び出す

  • super():親クラスのコンストラクターを呼び出す

java
public class Employee extends Person { public Employee() { super("未設定", 0); // 親クラスのコンストラクター呼び出し } }

まとめ

項目 説明
名前 クラス名と同じ
戻り値 なし(voidも書かない)
自動呼び出し new によって自動実行
オーバーロード 可能
初期化目的 オブジェクトのフィールドを設定するために使用される

生成日:2025/05/03