: 特徴の分類
: オブジェクト指向
: オブジェクト
- オブジェクト指向言語は、伝統的な手続き型言語より
ソフトウエアコンポーネントの再利用性に優れているといわれている。
- ソフトウエアコンポーネントは、一つ以上のコンテキストから利用される
時「再利用可能」といわれている。
- 再利用は、他のコンポーネントとのコンポーネントの置換を伴う。
- 伝統的な手続き型言語では、そのような置換はちょうど「同じ」タイプまたは、
インターフェースの一致を要求する。
- オブジェクト指向言語では、置換のためには 2 つの種類がある。
「オブジェクトは他のオブジェクトと置換」され、
「メソッドは他のメソッドと置換」される。
- その際には、タイプまたは、インターフェースの「同じ」一致を要求しない。
- オブジェクトの置換にはいつくかのメカニズムがある。一般には、最低限同じ
attribute を持つ新しいオブジェクトに置換される。
- 新しいオブジェクトでの付加された attribute は、不可視な属性として残り、
直接(外から)アクセスできない。
- メソッドの置換は、オーバーライディング(overriding) という。
- 既存メソッドの再利用は継承 (inheritance) という。
- これら置換の重要な問題点は self の概念である。
- 特別な名前である self により、メソッドはホストオブジェクトを指
すことができ、よって兄弟 (同じオブジェクトの他の) メソッドにアクセスする
ことができる。継承やオーバーライディングによって、メソッドの兄弟関係が
変化し self は動的な意味を持つ。
- self なしでは、メソッドの振る舞いはより固定したものとなり、
メソッドの再利用も制限される。
- オブジェクトとメソッド置換の柔軟性のため、動的に変数を束縛している
かもしれない全てのオブジェクトの正確な種類 (kind) を静的に知る方法はない。
- 適当な invisible 属性を提供しない文脈の中で、
オブジェクトからメソッドを取り出したり、それを再利用した場合は unsound と
なる。
- データ構造を操作する手続きとは違い、メソッドはオブジェクト
には不可欠で切り離せない部分である。
平成12年8月22日