メソッド (3) コンストラクタ

コンストラクタ: インスタンス化の時に実行される特殊なメソッド

これまでの作ってきたクラスは、主に次のような使い方をしてきた。

  1. インスタンス化を行い、
  2. 各フィールドの値をセットし、
  3. メソッドを呼び出す。

大抵のクラスでは、インスタンス化の時に行いたい処理がある。上記の例では「各フィールドの値をセットし、」がそれ。
この処理を記述するための専用のメソッドとし、コンストラクタ(constructor)という仕組みがある。

コンストラクタとは

  • インスタンス化の時に実行されるメソッド
  • 定義の書式が普通のメソッドと違う
    • メソッド名をクラス名と同じにする
    • 戻り値の型は書かない(注意: voidではない)
  • 複数のコンストラクタを定義することができる。メソッド名は同じなので、引数の型、数、並び順で区別される。

インスタンス化の注意

  • コンストラクタを1つでも定義した場合は、定義したコンストラクタでしかインスタンス化できない。例えば、引数有りのコンストラクタを1つだけ定義したクラスは、引数無しでインスタンス化することができない。
  • コンストラクタを1つも定義しない場合は、デフォルトコンストラクタが自動的に用意されるので、引数無しでインスタンス化することができる。

コンストラクタを定義して使ってみよう

  • BMIの算出
    • Person.java (コンストラクタを定義しない場合)
    • Main1.java (コンストラクタを定義しない場合)
    • Person.java (コンストラクタを定義する場合)
    • Main1.java (コンストラクタを定義する場合)
  • 三角形