「クラスベース」の版間の差分
削除された内容 追加された内容
rvv タグ: サイズの大幅な増減 |
|||
1行目:
{{出典の明記|date=2015年12月}}
'''クラスベース''' ({{lang-en-short|class-based}}) とは[[オブジェクト指向]]のスタイルのひとつで、まず「鋳型」あるいは「設計図」となる[[クラス (コンピュータ)|クラス]]があり、その鋳型によってオブジェクトの実体である[[インスタンス]]を生成する、というスタイルである。クラスベースの[[システム]]や[[プログラミング言語]]では、併せて[[カプセル化]]や[[継承 (プログラミング)|継承]]のメカニズムをサポートすることが多い。代表的なプログラミング言語は[[C++]]<ref>C++はマルチパラダイム言語であり、[[手続き型プログラミング]]言語の性質も持つが、ここではプロトタイプベースの対義語としての比較説明をするため、クラスベースの[[オブジェクト指向プログラミング]]言語に分類するものとする。</ref>や[[Java]]など。
クラスベースのほか、オブジェクト指向における「同類のオブジェクトに同じような振舞いをさせるためのメカニズム」のもうひとつのスタイルとして、[[プロトタイプベース]]がある。プロトタイプベースのプログラミング言語の代表例としては[[JavaScript]]や[[Lua]]などがある。ただしJavaScriptの標準規格である[[ECMAScript]]は、バージョン6 (2015) 以降でクラス構文もサポートするようになった(実際には[[糖衣構文|シンタクティックシュガー]]的な機能であるが、そのような構文があると、「クラス構文もサポートするように」と言えばいかにもクラスベースになったように見えるのである)。
なおオブジェクト指向のスタイルとして、[[ビャーネ・ストロヴストルップ]]の[[C++]]流と、[[アラン・ケイ]]の[[Smalltalk]]流という分類がなされることもある。前者は由来となった[[Simula]]のクラスを強く受け継いだものであり、C++から派生した[[Java]]や[[C Sharp|C#]]などの大多数のオブジェクト指向言語にも受け継がれている。後者は[[アラン・ケイ]]の提唱した[[メッセージ (コンピュータ)|メッセージパッシング]]の概念に基づくものであり、[[Objective-C]]にも受け継がれている。
<!--<ref>http://d.hatena.ne.jp/sumim/20040525/p1 を参照</ref>-->
<!-- 信頼性が担保されない個人のブログ記事は、単体では有効な出典になりえない。[[Wikipedia:信頼できる情報源]] -->
== 脚注 ==
{{Reflist}}
{{プログラミング言語の関連項目}}
{{Computer-stub}}
{{デフォルトソート:くらすへえす}}
[[category:オブジェクト指向|くらすへえす]]
|