車インスタンスをより少ないコード数で作成する
目標:コンストラクタの概念と書き方を理解する
下記の記事では、Carクラスを元に メインクラスでインスタンスを作成しています。
車のインスタンスが1つだからスッキリして見えるけれど、 もしインスタンスを2つ、3つ、4つ、、、 たくさん作るとしたら・・・
例えば、Carクラスのインスタンスを生成する際に、 setName setColor getFuel をいつもやるとします。
すごいコード数になりそうですね・・・
名前と色は一つ一つ違うにしろ、 燃料の初期値は毎回100と決まっているのに 書くのは面倒です。
インスタンスを生成すると同時に燃料を100にセットしてくれたら…
そんな願いを叶えてくれるのがコンストラクタです。
コンストラクタとは、インスタンスを生成すると同時にメソッドを実行できる仕組みを指します。
コンストラクタの文法は以下のようになります。
public クラス名(){ メソッド }
例えば、 Carクラスの燃料の初期値は常に100リットルとするならば、
public Car(){ this.fuel = 100; }
なお、名前や色は一つ一つ違うけれども、毎回 setNameやsetColorを書くのが面倒だという場合にも、 コンストラクは対応しています。
引数を指定するコンストラクタの文法は、以下のようになります。
public クラス名(型 引数){ メソッド ]
名前と色は一つ一つ指定する場合のコンストラクタのコードは、 以下のようになります。
public Car(String name, String color){ this.name = name; this.color = color; }
メインクラスにて、 赤色の「Ferrari」という車と、シルバーの「Benz」というCarクラスのインスタンスを生成するように指示するコードは、以下のようになります。
Car ferrari = new Car(“Ferrari”,”red”); Car Benz = new Car(“Benz”, “silver”);