「クラスベース」の版間の差分
表示
削除された内容 追加された内容
編集の要約なし |
m編集の要約なし タグ: Refタグつき記述の除去 モバイル編集 モバイルウェブ編集 改良版モバイル編集 |
||
(5人の利用者による、間の26版が非表示) | |||
1行目: | 1行目: | ||
{{出典の明記|date=2015年12月}} |
{{出典の明記|date=2015年12月}} |
||
'''クラスベース'''とは[[オブジェクト指向]]のモデルの方式のひとつで、「鋳型」となる[[クラス (コンピュータ)|クラス]]があり、その鋳型によってオブジェクトの実体である[[インスタンス]]を生成する、というスタイルである。クラスベースの[[システム]]では、システム内に、継承のシステムを持っていることが多い。 |
|||
クラスベース |
'''クラスベース''' ({{lang-en-short|Class-based}}) は、[[オブジェクト指向プログラミング]](OOP)のスタイルのひとつであり、[[オブジェクト (プログラミング)|オブジェクト]]の生成に[[クラス (コンピュータ)|クラス]]を用いるスタイルを指している。OOPの標準的スタイルである。それと対比されるスタイルに[[プロトタイプベース]]がある。 |
||
クラスベースOOPは、先発の[[アラン・ケイ]]の[[Smalltalk]]流と、後発の[[ビャーネ・ストロヴストルップ]]の[[C++]]流で二分されている。Smalltalk流は[[メッセージパッシング]]を基礎にしており、C++流は[[継承 (プログラミング)|継承]]と動的ディスパッチを加えた[[抽象データ型]]のスーパーセットを基礎にしている。 |
|||
クラスベースOOPでの[[オブジェクト (プログラミング)|オブジェクト]]は、総じて[[クラス (コンピュータ)|クラス]]を実体化した[[インスタンス]]と定義されている。クラスは、[[プロパティ (プログラミング)|状態]]と[[メソッド (計算機科学)|振る舞い]]の構成を定めた一種の[[型システム|型]]であり、オブジェクトのひな型や設計図に例えられている。クラスには[[カプセル化]]、[[継承 (プログラミング)|継承]]、[[ポリモーフィズム]]をサポートするメカニズムが備えられているのが普通である。Smalltalkのクラスは、[[メタクラス]]の[[インスタンス]]でもあるので[[オブジェクト (プログラミング)|オブジェクト]]である。C++流の[[クラス (コンピュータ)|クラス]]はただの[[型システム|型]]であり、そのインスタンスがオブジェクトである。 |
|||
C++流のクラスベースは、[[静的型付け]]と[[動的型付け]]で二分されている。[[静的型付け]]はクラスの構成解釈=オブジェクトの型チェックをコンパイル時にする機構であり、[[動的型付け]]はクラスの構成解釈=オブジェクトの型チェックを実行時にする機構である。 |
|||
== 脚注 == |
|||
{{Reflist}} |
|||
{{プログラミング言語の関連項目}} |
{{プログラミング言語の関連項目}} |
2022年8月8日 (月) 00:37時点における最新版
クラスベース (英: Class-based) は、オブジェクト指向プログラミング(OOP)のスタイルのひとつであり、オブジェクトの生成にクラスを用いるスタイルを指している。OOPの標準的スタイルである。それと対比されるスタイルにプロトタイプベースがある。
クラスベースOOPは、先発のアラン・ケイのSmalltalk流と、後発のビャーネ・ストロヴストルップのC++流で二分されている。Smalltalk流はメッセージパッシングを基礎にしており、C++流は継承と動的ディスパッチを加えた抽象データ型のスーパーセットを基礎にしている。
クラスベースOOPでのオブジェクトは、総じてクラスを実体化したインスタンスと定義されている。クラスは、状態と振る舞いの構成を定めた一種の型であり、オブジェクトのひな型や設計図に例えられている。クラスにはカプセル化、継承、ポリモーフィズムをサポートするメカニズムが備えられているのが普通である。Smalltalkのクラスは、メタクラスのインスタンスでもあるのでオブジェクトである。C++流のクラスはただの型であり、そのインスタンスがオブジェクトである。
C++流のクラスベースは、静的型付けと動的型付けで二分されている。静的型付けはクラスの構成解釈=オブジェクトの型チェックをコンパイル時にする機構であり、動的型付けはクラスの構成解釈=オブジェクトの型チェックを実行時にする機構である。