public class Main {
public static void main(String[] args) {
// デフォルトコンストラクタが呼び出される
Car car1 = new Car();
System.out.println("Car1: Brand = " + car1.getBrand() + ", Model = " + car1.getModel());
// 引数を指定してコンストラクタが呼び出される
Car car2 = new Car("Toyota", "Camry");
System.out.println("Car2: Brand = " + car2.getBrand() + ", Model = " + car2.getModel());
}
}
class Car {
private String brand;
private String model;
// デフォルトコンストラクタ
public Car() {
this.brand = "Unknown";
this.model = "Unknown";
}
// 引数を受け取るコンストラクタ
public Car(String brand, String model) {
this.brand = brand;
this.model = model;
}
// ゲッターメソッド
public String getBrand() {
return brand;
}
public String getModel() {
return model;
}
}
このコードでは、main
メソッド内で Car
クラスのオブジェクト car1
と car2
を生成しています。car1
の生成ではデフォルトコンストラクタが、car2
の生成では引数を指定したコンストラクタが呼び出されています。それぞれのオブジェクトの状態を出力して、どのコンストラクタが呼び出されたかを確認できます。
コンストラクタの呼び出し
「コンストラクタの呼び出し」は、クラスのインスタンスを生成する際に、そのクラスに定義されているコンストラクタを呼び出すプロセスを指します。コンストラクタは、クラスのインスタンスが生成されるときに自動的に実行され、そのオブジェクトの初期化を行います。
以下に、「コンストラクタの呼び出し」の要点を解説します。
1.コンストラクタの目的:
コンストラクタは、クラスのインスタンスを初期化するための特別なメソッドです。インスタンスが生成されると、そのクラスに定義されたコンストラクタが呼び出され、オブジェクトの初期状態が設定されます。
2.デフォルトコンストラクタ:
クラスにコンストラクタが定義されていない場合、デフォルトコンストラクタが提供されます。デフォルトコンストラクタは引数を受け取らず、基本的な初期化を行います。
3.引数を受け取るコンストラクタ:
引数を受け取るコンストラクタは、特定の引数を受け取ってオブジェクトを初期化します。これにより、生成されるオブジェクトの状態を外部から指定できます。
4.コンストラクタの呼び出し:
インスタンスを生成する際には、new キーワードを使用してコンストラクタを呼び出します。例えば、Car クラスの場合は以下のようになります。
Car car = new Car(); // デフォルトコンストラクタの呼び出し
または
Car car = new Car("Toyota", "Camry"); // 引数を受け取るコンストラクタの呼び出し
この呼び出しにより、Car クラスのコンストラクタが実行され、オブジェクトが初期化されます。
5.複数のコンストラクタ:
クラス内に複数のコンストラクタが定義されている場合、異なる引数の組み合わせに対応できます。オーバーロードされたコンストラクタを使用することで、様々な初期化のパターンに対応できます。
コンストラクタの呼び出しによって、オブジェクトが生成され、そのオブジェクトの初期状態が設定されます。これは、Javaにおいてオブジェクト指向プログラミングの中で重要な概念の一つです。