コンストラクタ 【構築子】 constructor_
言語により仕様や定義の仕方は異なるが、C++言語やJavaではクラス定義の内部でクラス名と同名のメソッドを定義すると、それがコンストラクタとして呼び出される。厳密にはコンストラクタにメソッド名はなく内部的には無名のメソッドとして取り扱われる。コンストラクタのための予約語が決められていて、これを名前とするメソッドを定義する言語もある。
コンストラクタ内では他のインスタンスメソッドと同じように任意の処理を記述することができるが、プロパティ(メンバ変数)の初期値の設定などを行うのが一般的である。インスタンスの初期化を超えてあまり複雑な機能を持たせるべきではないとされる。
コンストラクタの呼び出しは、そのクラス外のコード上でnew演算子などを用いて、「クラス名 変数名=new クラス名(引数);」のように変数宣言と同時に行うことが多い。生成されたインスタンスは宣言された変数に代入され、以降のコードで操作可能になる。
多くの言語では他のメソッドと同じように引数を指定することができ、インスタンス化する側のコードからパラメータを渡すことができる。一方、通常は生成したインスタンスへの参照が返り値として呼び出し側に渡されるため、他のメソッドのようにreturn文などで返り値を指定することはできない。
コンストラクタとは逆に、不要になったインスタンスを破棄する直前に実行する特殊なメソッドを定義できる言語もあり、「デストラクタ」(destructor)と呼ばれる。インスタンスが消滅する際に必要な後処理などを記述し、実行後はインスタンスが消滅してメモリが解放される。
(2024.3.8更新)