クラス 【class】

概要

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

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

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

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

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

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

クラスの継承

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

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

(2024.3.28更新)

オブジェクト指向の用語一覧

試験出題履歴

ITパスポート試験 : 平24秋 問45
基本情報技術者試験 : 令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