TOP > Java > カプセル化とオブジェクト指向 |
カプセル化の利点
保守性、柔軟性、拡張性、明確性。
オブジェクト指向の設計原則では将来に備えるべきであるとされている。
安全の為には、呼び出し側のコードをインスタンス変数に直接アクセスさせず、いつでもメソッドを通じてアクセスすべき。その事により、後からメソッドの実装方法を自由に修正することができる。
IS-A関係
IS-A関係は、オブジェクト指向の継承(拡張)の概念である。例えば、あるクラス「Super」を「Sub」が継承している場合、「SubはSuperである。」と言える。すなわち、「Sub IS-A Super」である。instanceof演算子を用いて比較する場合、Subの参照変数「s」を使い、「s instanceof Super」となる。この結果はtrueになる。
IS-A関係の例
class Super{} class Sub extends Super{} この場合、「Sub IS-A Super」と言える。しかし、「Super IS-A Sub」とは言えない。何故なら、Subクラスは独自に色々定義できるからである。
HAS-A関係
HAS-A関係は使用方法に基づく。クラスAのコード内にクラスBのインスタンスを指す参照がある場合に「A HAS-A B」と言える
HAS-A関係の例
class A{} class B{ A a ; } クラスBはAを参照する変数を持っているので、「B HAS-A A」となる。
|
Copyright 2007 ためになるホームページ All Rights Reserved. |