クラス 【class】

概要

クラス(class)とは、級、階級、等級、格、類、分類、種類、学級、科目、授業などの意味を持つ英単語。ITの分野では、オブジェクト指向プログラミングにおけるオブジェクトの雛形や、何らかの階級や分類を表す名称の一部としてよく用いられる。

オブジェクト指向プログラミングのクラス

オブジェクト指向では、互いに関連するデータと、データに対する操作(メソッド)を一つの「オブジェクト」(object)と呼ばれる単位に一体化(カプセル化)して取り扱う。あるオブジェクトがどのようなデータとメソッドから作られるのかを定義した雛形をクラスという。

プログラムの実行時にはクラスを元にメモリ空間上に具体的なオブジェクトが生成される。この実体化されたオブジェクトのことを「インスタンス」(instance)という。同じクラスから複数のインスタンスを生成することができ、それぞれ異なる内部状態を持つことができる。

クラスには、オブジェクト内部で取り扱うデータ(フィールド/メンバ変数)の名称やデータ型、アクセス可能な範囲(クラス外から参照・操作可能か否かなど)を宣言する。同様にメソッドメンバ関数)の名称や引数、処理内容の詳細、アクセス範囲も記述する。

データや手続きは通常はインスタンスに属するが、クラスそのものに属するものを宣言することができる。クラス自体に属するデータを「クラス変数」(静的フィールド/静的メンバ変数)、クラス自体に属する手続きを「クラスメソッド」(静的メソッド)という。

クラスの継承

クラスベースのプログラミング言語では、あるクラスを元に一部を改変して別のクラスを定義することができ、これをクラスの「継承」(inheritance)という。このとき、元になったクラスを「親クラス」(parent class)「スーパークラス」(superclass)「基底クラス」(base class)などと呼び、新たに定義されたクラスは「子クラス」(child class)「サブクラス」(subclass)「派生クラス」(derived class)などという。

抽象的・汎用的なクラスを元に具体的な機能を付け足したクラスを派生させていくことで、大規模なソフトウェアを効率的に開発することができる。言語によっては親クラスのメソッドを子クラスが同じ名前で別の内容に差し替えることができる。このように、同じ名前がクラスによって異なる内容を指すことを「ポリモーフィズム」(polymorphism多態性)という。

(2024.3.28更新)

他の用語辞典による「クラス」の解説 (外部サイト)

資格試験などの「クラス」の出題履歴

▼ ITパスポート試験
平24秋 問45】 次の a~d のうち、オブジェクト指向の基本概念として適切なものだけを全て挙げたものはどれか。a クラスb 継承c データの正規化d ホワイトボックステスト。

▼ 基本情報技術者試験
令7修7 問35】 オブジェクト指向におけるクラスとインスタンスとの関係のうち,適切なものはどれか。
令7修1 問35】 (私の父:公務員)が “私の父は公務員である” というインスタンスとクラスの関係を表すとき,同じ関係となるものはどれか。
令6修7 問35】 オブジェクト指向におけるクラスとインスタンスとの関係のうち,適切なものはどれか。
令4修6 問45】 オブジェクト指向におけるクラスとインスタンスとの関係のうち,適切なものはどれか。
令3修12 問46】 オブジェクト指向言語のクラスに関する記述のうち,適切なものはどれか。
令2修1 問46】 オブジェクト指向言語のクラスに関する記述のうち,適切なものはどれか。
令1修12 問45】 オブジェクト指向におけるクラスとインスタンスとの関係のうち,適切なものはどれか。
令1修6 問46】 オブジェクト指向分析を用いてモデリングしたとき,クラスとオブジェクトの関係になる組みはどれか。
平30秋 問47】 オブジェクト指向におけるクラスとインスタンスとの関係のうち,適切なものはどれか。
平30修7 問46】 オブジェクト指向言語のクラスに関する記述のうち,適切なものはどれか。
平29秋 問47】 オブジェクト指向分析を用いてモデリングしたとき,クラスとオブジェクトの関係になる組みはどれか。
平28修7 問47】 オブジェクト指向におけるクラスとインスタンスとの関係のうち,適切なものはどれか。
平25修12 問48】 オブジェクト指向におけるクラスとインスタンスとの関係のうち,適切なものはどれか。
平23修12 問48】 オブジェクト指向におけるクラスとインスタンスとの関係のうち,適切なものはどれか。
平22秋 問47】 オブジェクト指向におけるクラスとインスタンスとの関係のうち,適切なものはどれか。
平22春 問47】 オブジェクト指向におけるクラス間の関係のうち,適切なものはどれか。