クラスベース

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ナビゲーションに移動 検索に移動

クラスベース (: class-based) とはオブジェクト指向のスタイルのひとつで、まず「鋳型」あるいは「設計図」となるクラスがあり、その鋳型によってオブジェクトの実体であるインスタンスを生成する、というスタイルである。クラスベースのシステムプログラミング言語では、併せてカプセル化継承のメカニズムをサポートすることが多い。代表的なプログラミング言語はC++[1]Javaなど。

クラスベースのほか、オブジェクト指向における「同類のオブジェクトに同じような振舞いをさせるためのメカニズム」のもうひとつのスタイルとして、プロトタイプベースがある。プロトタイプベースのプログラミング言語の代表例としてはJavaScriptLuaなどがある。ただしJavaScriptの標準規格であるECMAScriptは、バージョン6 (2015) 以降でクラス構文もサポートするようになった(実際にはシンタクティックシュガー的な機能であるが、そのような構文があると、「クラス構文もサポートするように」と言えばいかにもクラスベースになったように見えるのである)。

なおオブジェクト指向のスタイルとして、ビャーネ・ストロヴストルップC++流と、アラン・ケイSmalltalk流という分類がなされることもある。前者は由来となったSimulaのクラスを強く受け継いだものであり、C++から派生したJavaC#などの大多数のオブジェクト指向言語にも受け継がれている。後者はアラン・ケイの提唱したメッセージパッシングの概念に基づくものであり、Objective-Cにも受け継がれている。

脚注[編集]

  1. ^ C++はマルチパラダイム言語であり、手続き型プログラミング言語の性質も持つが、ここではプロトタイプベースの対義語としての比較説明をするため、クラスベースのオブジェクト指向プログラミング言語に分類するものとする。