コンストラクタとは?
-
インスタンス化されると同時に自動で動き出す特殊なメソッド。フィールドに実態を定義する上で、必要な初期値を代入する役割を担う。
-
インスタンス化が起こった際に自動でフィールドを初期化する特殊なメソッドを定義することが可能であり、これをコンストラクタという。
-
コンストラクタは以下のルールと特徴がある。
○ コンストラクタの定義において戻り値の情報は何も記述しない ※void不要
○ コンストラクタ名はクラス名と同じ ※メソッドのルールを外れ、大文字の命名となる
○ インスタンス生成時、必ず最初に呼び出される -
実はインスタンス化の右辺はコンストラクタを表しており、右辺の()内にフィールドの初期値として設定したい値を入れておくと、コンストラクタに値渡しされてフィールドの初期化が行われる。
クラス名 インスタンス名 = new クラス名(引数);
※コンストラクタを表しています
- コンストラクタはメソッドの一種なので、様々な引数パターンに応じてオーバーロードして定義することは可能です。
Sample2.java
class Sample2_drive {
public static void main(String[] args)
System.out.println("車を場に搭乗させる")
car chocoCar = new Sample2_car();
car mocoCar = new Sample2_car("クーペ","red",80);
//コンストラクタ①(引数無し)
Sample2_car(){
System.out.println("コンストラクタ① (引数無)");
carModel = "未登録"; //車種
color = "未登録"; //色
speed = 0; //現在の速度
System.out.println("○ ○");
}
//コンストラクタ②(引数有り)
Sample2_car(String cm, String cl, int sp){
System.out.println("コンストラクタ② (引数有)");
carModel = cm; //車種
color = cl; //色
speed = 0; //現在の速度
System.out.println("○ ○");
}
デフォルトコンストラクタ
- コンストラクタは、インスタンス化の際は必ず実行される。もしもコンストラクタがソースコード内で実行されていない場合、裏で引数無し/処理無しのコンストラクタが補われて実行され、これを『デフォルトコンストラクタ』と言う。
- デフォルトコンストラクタじゃソースコード内に1つでもコンストラクタが定義されていた場合、補われない。