コンストラクタ: インスタンス化の時に実行される特殊なメソッド
これまでの作ってきたクラスは、主に次のような使い方をしてきた。
- インスタンス化を行い、
- 各フィールドの値をセットし、
- メソッドを呼び出す。
大抵のクラスでは、インスタンス化の時に行いたい処理がある。上記の例では「各フィールドの値をセットし、」がそれ。
この処理を記述するための専用のメソッドとし、コンストラクタ(constructor)という仕組みがある。
コンストラクタとは
- インスタンス化の時に実行されるメソッド
- 定義の書式が普通のメソッドと違う
- メソッド名をクラス名と同じにする
- 戻り値の型は書かない(注意: voidではない)
- 複数のコンストラクタを定義することができる。メソッド名は同じなので、引数の型、数、並び順で区別される。
インスタンス化の注意
- コンストラクタを1つでも定義した場合は、定義したコンストラクタでしかインスタンス化できない。例えば、引数有りのコンストラクタを1つだけ定義したクラスは、引数無しでインスタンス化することができない。
- コンストラクタを1つも定義しない場合は、デフォルトコンストラクタが自動的に用意されるので、引数無しでインスタンス化することができる。
コンストラクタを定義して使ってみよう
- BMIの算出
- Person.java (コンストラクタを定義しない場合)
- Main1.java (コンストラクタを定義しない場合)
- Person.java (コンストラクタを定義する場合)
- Main1.java (コンストラクタを定義する場合)
- 三角形
- Rectangle.java (コンストラクタを定義しない場合)
- Practice01.java (コンストラクタを定義しない場合)
- Rectangle.java (コンストラクタを定義する場合)
- Main1.java (コンストラクタを定義する場合)