[Core.java] 4. Objects and Classes

1653 ワード

Relationships between Classes


  • Dependence ("uses-a")
    :あるクラス(A)が別のクラス(B)の方法(Aクラスの状態を変えるため)を必要とする場合、AクラスはBクラスに依存する.
    多くの種類の相互依存をできるだけ減らす.例えば,AクラスがBクラスの存在を知らなければ,Bクラスの変化を心配する必要はない.△エラーが発生した場合に伝播し、他のエラーを引き起こす波及効果を最小限に抑えるべきである.
    =>ソフトウェアエンジニアリング用語の観点から、結合度を最小限に抑えるべきであるからである.

  • Aggregation("has-a")
    :has-a関係は継承を使用しません.has−a関係は典型的な概念関係を含む.
    通常はインタフェース形式で使用されます.

  • Inheritance("is-a")
    :is-a関係(継承)は一般概念と具体概念の関係である.継承関係では、子は親に依存するため、異機種間では継承は使用されません.
  • Static Methods

  • 静的方法は静的場を処理するために用いられる.
    (通常のpublicフィールドではstatic methodでインスタンス値を操作できません.)
  • ex)
  • harry is an Employee object
    
    public static final int nextId = 1;
    public static int getNextId() {
    	return nextId;
    }
    静的に作成された定数(ex.public static final int nextId=1;)harryという名前のEmployeeオブジェクトの値(harry.getNextId()とEmployeeを使用します.getNextId()と同様に、オブジェクトではなくクラス名を使用する静的メソッドを推奨します.