Javaでコンストラクタを定義する方法について説明します。コンストラクタは、クラスのインスタンス(オブジェクト)が生成されるときに自動的に呼び出される特別なメソッドです。コンストラクタは、オブジェクトの初期化に使用されます。以下に基本的なコンストラクタの定義方法を示します。
コンストラクタの基本的な構造
- コンストラクタの名前: コンストラクタの名前は、常にクラスの名前と完全に同じでなければなりません。
- 戻り値を持たない: コンストラクタは戻り値を持ちません。これは、コンストラクタが値を返す通常のメソッドとは異なる点です。
-
アクセス修飾子: コンストラクタは、
public
、private
、protected
、またはパッケージプライベート(修飾子なし)のいずれかのアクセスレベルを持つことができます。
簡単な例
JavaのPerson
クラスにコンストラクタを定義する例を以下に示します。
public class Person {
// メンバ変数(フィールド)
private String name;
private int age;
// コンストラクタ
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// その他のメソッド(例えば、ゲッターやセッター)をここに追加できます。
}
この例では、Person
クラスに対してpublic
アクセス修飾子を持つコンストラクタを定義しています。このコンストラクタは、name
とage
という2つのパラメータを受け取り、それらをクラスのフィールドに割り当てています。
コンストラクタの使用
コンストラクタは、新しいオブジェクトが作成される際に呼び出されます。例えば、上記のPerson
クラスのインスタンスを作成するには、次のようにします。
Person person = new Person("Alice", 30);
この行は、Person
クラスの新しいインスタンスを作成し、そのname
フィールドに"Alice"を、age
フィールドに30を割り当てます。
デフォルトコンストラクタ
クラスにコンストラクタが明示的に定義されていない場合、Javaはデフォルトコンストラクタを提供します。デフォルトコンストラクタは引数を取らず、フィールドにデフォルト値を設定します(数値型の場合は0、オブジェクト型の場合はnull
)。しかし、クラスに自分でコンストラクタを一つでも定義すると、デフォルトコンストラクタは提供されなくなります。