コンストラクタコンストラクタ今まで作成したCarクラスは、オブジェクトを生成後に初期化して使用してもらいました。初期化せずに使用するとどうなるのでしょうか?ガソリンが0リッターなので、加速しても走りません。Carクラスには初期化メソッドが用意されており、Carクラスを利用する側が呼び出しの記述をしないと初期化されません。そこで、オブジェクトを生成した時に初期化をするように調整しましょう。そのようなときに利用できる仕組みが「コンストラクタ」です。コンストラクタは、クラスからインスタンス生成をする際にフィールド変数に値を設定するなどの初期設定を行う機能です。インスタンス生成を行う際に呼び出される特別なメソッドを記述します。プログラム次のようにCarクラスにコンストラクタを追加してください。解説10~12行目でコンストラクタを定義しています。このコンストラクタは引数を受け取らず、呼び出されたらもう一つの引数を受け取るコンストラクタにガソリン量を表す「20」を渡して呼び出しています。14~17行目では引数を受け付けるコンストラクタを定義しています。スピード情報に「0」をセットし、ガソリン量を引数で受け取ったデータでセットします。43~47行目では、コンストラクタを定義することにより初期化を行うメソッドが不要になりましたので、コメントアウト(削除)しています。解説20行目で、フィールドを初期化するメソッドの呼び出しは廃止されたため、コメントアウトして実行させないようにしました。その代わりに用意されたコンストラクタで初期化をするために15行目では、インスタンス生成時の引数にガソリン量のデータを渡しています。前節まではコンストラクタを定義していませんでした。Car()」としていました。コンストラクタを定義していない場合は、引数なし・処理なしのコンストラクタが仮定されて、インスタンスが生成されます。引数を持たないコンストラクタのことを「デフォルトコンストラクタ」と呼びます。デフォルトコンストラクタのイメージ今回のように引数を持つコンストラクタが1つでも定義されている場合は、デフォルトコンストラクタは仮定されません。デフォルトコンストラクタを使用したい場合は引数を持たないコンストラクタを明示的に定義しなくてはなりません。デフォルトコンストラクタは仮定されないなお、コンストラクタもオーバーロードさせることができます。this()」のように記述をします。