http:www.sip-ac.jp/sip/konan_text/adis06-02.html,        © 2001 Ayumi Yoshikawa
主観情報処理研究所

情報システムの分析と設計:オブジェクト指向の概念(最終更新:2015/12/06 16:33:44 JST)

オブジェクト指向の概念

オブジェクト指向の基本概念

オブジェクト指向の基本概念には次のようなものがある(小口・長倉・石川著,ソフトウェア開発ライフサイクル,ITEC,2002).

カプセル化(Encapsulation)(教科書4ページ)
属性とメソッドを一体化してオブジェクトとすることをカプセル化という.つまり他のオブジェクトが直接そのオブジェクトの属性値やメソッドを外部から実行できないようにするしくみである.
汎化-特化(is-a)関係
エンティティの章で出てきたように,クラスにもいわゆる親子関係に相当する階層構造が存在する.親に当たるものほど抽象性が高くなっている.親に相当するクラス(上位概念)を特にスーパークラス,子供に相当するクラス(下位概念)をサブクラスと呼ぶ.抽象性を高めることを汎化,具体性を高めることを特化と呼ぶのはエンティティと同様である.
集約-分解(part-of)関係
エンティティと同様,部品と全体の関係である.
継承(Inheritance)(教科書5ページ)
is-a関係があるとき,スーパークラスの属性,メソッドがサブクラスに受け継がれる性質を継承と呼ぶ.例えば,下図のようにスーパークラスが「乗り物」であったとき,「乗り物」クラスのメソッドの「前進する」,「止まる」は自動的にサブクラス「自動車」などに受け継がれる.

is-a関係と継承

出典:小口・長倉・石川著,ソフトウェア開発ライフサイクル,ITEC,2002

[*]下へ▼ ▲[#]上へ

オブジェクト指向の応用概念

基本概念以外に次のような応用概念がある(小口・長倉・石川著,ソフトウェア開発ライフサイクル,ITEC,2002).

多重継承
サブクラスが複数のスーパークラスから継承することを,多重継承と呼ぶ.この場合,サブクラスは継承したすべてのスーパークラスの属性とメソッドを引き継ぐことになる.
多態性・多様性(ポリモフィズム:polymorphism)(教科書6ページ)
異なるクラスのオブジェクトに対して,同じ名前のメッセージを送ったときに,そのオブジェクトごとに異なった動作を起こすことを多態性・多様性と呼ぶ.メッセージを送る側は,異なる動作を起こさせるための仕組みを省略できる.例えば,「馬」オブジェクトと「車」オブジェクトに同じ「走れ」というメッセージを送ったときに,得られる結果は異なることなどが,この一例である.
オーバーライド(教科書7ページ)
スーパークラスから継承されたメソッドをサブクラスで再定義して上書きすること.このとき元のスーパークラスで定義されたメソッドはなくなる.上述のポリモフィズムを実現するために利用される.
伝搬
あるオブジェクトに対して操作を起動したときに,そのオブジェクトに関連する他のオブジェクトに対しても,自動的にその操作が起動されることを伝搬と呼ぶ.集約関係にある場合,上位の集約オブジェクトに対して操作を起動すれば,その集約オブジェクトを構成する部分オブジェクトに対しても,その操作が起動される.
役割
関連のあるオブジェクトの一方の終端には役割が規定される.つまり2つのオブジェクトの関連には2つの役割がある.例えば,「会計大学院オブジェクト」と「人オブジェクト」の間に「勉強する」という関連があるとき,会計大学院オブジェクトには指導者,人オブジェクトには学生という役割が付与される.

[*]下へ▼ ▲[#]上へ

このサイトに関するお問い合わせは,連絡先のページをご覧ください.

このページのボトムへ講義資料このページのトップへ

前のページに戻る  1  2  3  次のページへ進む   情報システムの分析と設計の目次に戻る ,        © 2001 Ayumi Yoshikawa