クラスとインスタンスとは?くらすといんすたんす
クラスは属性(データ)と操作(メソッド)をひとまとめにした型の定義、インスタンスはその定義をもとに実行時にメモリ上へ作られた個々の実体を指す。属性の値はインスタンスごとに別々に保持され、生成の際にはコンストラクタが呼ばれる。クラス全体で1つだけ持つ値はクラス変数(静的変数)として区別する。
最終更新:2026-10-06
情報処理安全確保支援士を最短で暗記・合格する →背景
手続き型の書き方では、データとそれを扱う関数が離れて置かれるため、整合性を守る責任が呼ぶ側に散らばった。両者を1つの単位に閉じ込め、外から触れる口を絞る(カプセル化)ために型の定義という考え方が生まれた。支援士では、この閉じ込めが破れる場面——外部から受け取ったデータをオブジェクトへ復元する処理が任意コード実行につながる安全でないデシリアライゼーション——が攻撃面として問われる。
具体例
Javaで言えばStringがクラス、コード中に現れる個々の文字列がインスタンスに当たる。Webアプリケーションでは利用者1人ごとにセッションを表すインスタンスが作られ、ログイン中の利用者IDや権限といった属性値は各インスタンスが個別に保持する。
試験での引っ掛け
クラス変数はインスタンスごとではなくクラス全体で1つだけ存在し、どのインスタンスから見ても同じ値になる。インスタンス変数と混同すると更新結果を問う設問で誤るうえ、実装でも利用者ごとの情報を静的変数に置いて他の利用者へ見せてしまう事故につながる。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。