前回は、クラスとオブジェクトについて学習しました。
オブジェクトは new を使って作成しました。
Car car = new Car();
実は、この new を実行したとき、自動的に呼び出される特別なメソッドがあります。
それが コンストラクタ です。
コンストラクタとは、オブジェクトが作成されたときに最初に実行される特別なメソッドです。
主に、オブジェクトの初期設定を行うために使用します。
public class Car {
public Car() {
System.out.println("車を作成しました。");
}
}
public class Main {
public static void main(String[] args) {
Car car = new Car();
}
}
車を作成しました。
new Car() を実行すると、コンストラクタが自動的に呼び出されます。
例えば、車には色やメーカーなどの情報があります。
オブジェクトを作ったあとに1つずつ設定することもできますが、毎回書くのは大変です。
Car car = new Car();
car.color = "赤";
car.maker = "メーカーA";
そこで、コンストラクタを利用すると、オブジェクトを作ると同時に初期値を設定できます。
public class Car {
String color;
// コンストラクタ
public Car(String color) {
this.color = color;
}
}
public class Main {
public static void main(String[] args) {
Car car = new Car("赤");
}
}
オブジェクトを作成すると同時に色を設定できます。
次のコードを見てみましょう。
this.color = color;
左側の this.color はクラスのフィールドです。
右側の color はコンストラクタへ渡された引数です。
this は、「このオブジェクト自身」を表すキーワードです。
どちらも処理をまとめるものですが、呼ばれるタイミングが異なります。
public void Car() {
}
コンストラクタには戻り値を書きません。
public CarData() {
}
コンストラクタ名はクラス名と同じである必要があります。
Car car;
オブジェクトは作成されません。
次回は、カプセル化について解説します。