コンストラクタ
出典: フリー百科事典『ウィキペディア(Wikipedia)』
コンストラクタ(構築子、Constructor)は、オブジェクト指向のプログラミング言語で新たなオブジェクトを生成する際に呼び出されて内容の初期化などを行なう関数、メソッドの事。Java、C++、PHPなどに見られる。対義語はデストラクタ。
オブジェクトの生成は、
- メモリ割当 (allocation)
- 初期化 (initialization)
の二段階を経て行われるが、コンストラクタを持つ言語ではアロケーションは言語機能に組み込まれ、初期化用のコードのみを記述するのが普通である。Java, C++ではコンストラクタを「クラス名と同一の名前を持つ関数(メソッド)」と定義しており、次のような自然な記法を行なえるようになっている。
obj = new SomeClass();
この時コンストラクタに渡す引数により初期化のバリエーションが定義される。特にパターンとして名前をもつコンストラクタは以下である。
- デフォルトコンストラクタ
- 引数なしのコンストラクタで、単にオブジェクトを生成した時の自然な値で初期化する。例: Pointクラスを座標(0,0)に初期化する。
- コピーコンストラクタ
- 同一クラスのオブジェクトから複製を作る。