コンストラクタとは?こんすとらくた
コンストラクタとは、クラス(データと処理をまとめた設計図)から実物のオブジェクト(インスタンス)を生成するときに呼び出され、そのインスタンスの初期状態を整える特別な手続。クラスと同じ名前で書き、メンバ変数(インスタンスがもつ変数)に最初の値を入れるのが主な役目。生成のときに1回だけ呼ばれる点と、生成したインスタンスそのものが結果になる点で、通常のメソッド(インスタンスに対して何度でも呼べる手続)と区別する。引数の違う複数のコンストラクタを用意できる言語もある。
最終更新:2026-10-10
この語が出る過去問を解く →背景
インスタンスを作った直後にメンバ変数へ値を入れ忘れると、空のまま使われて誤動作する。作る瞬間に必ず初期化の処理が走る仕組みにしておけば、使う側が手順を覚えていなくても、正しい初期状態のインスタンスだけが出回るようにできる。
具体例
科目Bの fe-2022s-kamokuB-8 では、クラス PrioQueue の説明に「コンストラクタ PrioQueue():空の優先度付きキューを生成する」とあり、続いて「メソッド enqueue(文字列型: s, 整数型: prio):要素を追加する」などが並ぶ。プログラムはまず PrioQueue() で空のキューを1つ作り、その後 enqueue で中身を足していく。コンストラクタは「箱を作る」、メソッドは「作った箱を操作する」と読み分けるとトレース(変数の値の追跡)がしやすい。
試験での引っ掛け
コンストラクタを、作ったインスタンスに何度も呼べる普通のメソッドと混同しない。コンストラクタは生成時に1回だけ動き、戻り値の型を書かない(結果は生成されたインスタンス)。科目Bのクラスの説明表では、コンストラクタの行とメソッドの行が分けて書かれるので、どちらの行かを先に確かめる。また、コンストラクタを呼ぶたびに別のインスタンスができ、前に作ったものの中身は引き継がれない。
関連用語
出た過去問
出典:令和4年度 公開問題 基本情報技術者試験 科目B 問8(IPA)
次の記述中の に入れる正しい答えを、解答群の中から選べ。 優先度付きキューを操作するプログラムである。優先度付きキューとは扱う要素に優先度を付けたキューであり、…
正解:"A", "C", "D", "D"
要点:優先度付きキューは優先度順、同順位は先入れ先出し
優先度は数値が小さいほど高く、同じ優先度なら先に入れたものが先に出ます。前半でA(1)とB(2)が取り出され、次にD(3)とB(2)を追加した状態から、優先度2のC、続いて後から入れたB(2)が取り出されます。残ったD(3)とD(3)にC(2)とA(1)を加えて最後まで出力すると、A、C、D、Dの順になります。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。