








オブジェクト指向プログラミング
オブジェクト指向で行なうプログラミング。
関連:
- [はてな]「オブジェクト指向の概念の発明者は誰ですか?」
- [はてな]「“オブジェクト指向プログラミングとは何か?”」
アラン・ケイのオブジェクト指向(メッセージ指向)でのプログラミング
Smalltalk がかつて重きを置いた「メッセージ指向」の意味合いでは、オブジェクトに対してメッセージを送信することであらかじめ決めておいた振る舞いをさせること。その振る舞いを記述する作業。ここで振る舞いとは、メッセージ受信をきっかけにオブジェクト自らの内部状態を変化させたり、内部状態に関する問い合わせに答えること。また、他のオブジェクトにメッセージを介して働きかけること。
ビャーネ・ストラウストラップのオブジェクト指向(クラス指向)でのプログラミング
現在主流の「クラス指向」の意味合いでは、クラスを使ってデータ型を安全なかたちで設計・記述し、それを運用すること。そうして新しく作ったデータ型を用いて、プログラミングする作業。この抽象データ型のスーパーセットとしてのオブジェクト指向は、一般に次の3つ要素が必須とされている。
じつはこれは C++ 発祥の「オブジェクト指向」の考えかたで、オリジナルは「抽象データ型」、「派生」、「仮想関数」であったのが Smalltalk などの他の OOPL やオブジェクトシステムを意識して、あるいは一般化のために言い換えられたものが広まって定着したものと推察される。また、これに続く「オブジェクト指向」に重要なものとして「静的(コンパイル時)型チェック機構」、「多重継承機構」、「アクセス制御(情報隠蔽)」などに触れられていたが、C++ に独特のこうした項目は無視・他項目へ統合されたらしい。
関連:
参考:
--sumim
>Design Principles Behind Smalltalk
↑この文章、いいですね!OOPの肝の説明としてもかなり白眉っぽいし、それ以外でも色々興味深い点(おいおい語りたい)が多い。 --戯
はじめまして、翻訳者(文扼者)です。移転先までリンクして頂いてたのですね。そちらにはもう無いのでリンクを消しておきました。--pron
pron さん、はじめまして。とても勉強になりました。ありがとうございます。--sumim
私も勉強になりました。お礼を言われてしかるべきなのは、この文章を紹介してくれた abee さんか HTML文書化の労をとった Dwight Hughes さんか そもそもこれを書いた Dan Ingalls さんでしょう ^^; --pron
Smalltalk でも現在は「クラス指向」的な考え方が主流である。これは「メッセージ指向」というパラダイムが、「クラス指向」という別のパラダイムさえも(限定的ながら)対象とする問題領域として扱うことが可能である…、と考えるとすんなりゆく。たとえば、Smalltalk-72 にはクラス継承がなかった。--sumim
このページを編集 (2880 bytes)
 |
以下の 4 ページから参照されています。 |
- Smalltalk 最終更新: 2007-02-13, 17:54:17 <pharm88>
- カプセル化 最終更新: 2006-04-03, 22:43:44 <192>
- 多態性 最終更新: 2006-04-03, 22:44:14 <192>
- 継承 最終更新: 2006-04-03, 22:44:30 <192>
This page has been visited 12263 times.