大学生になって最初の方で習うクラス図で一番よく聞かれる関係をまとめました。
他の人が勉強する助けになればいいと思い作成しました。

1段目はクラス名、2段目は属性、3段目は操作
1.汎化、特化(継承)

汎化は、あるクラスを抽象化すること、逆にあるクラスを具体化することを言います。
public class A{
}
public class B extends A{
}
2.実現

インタフェースを実装するクラス間の関係を実現と言います。
public interface A{
}
public class B implements A{
}
3.関連

public class A{
}
public class B{
private A a;
}
長期的に他クラスを使う関係
4.依存

public class A{
}
public class B{
public void method(A a){
}
}
一時的に他クラスを使う関係
5.集約

public class A{
}
public class B{
private A a1;
private A a2;
}
一方のクラスが、他方のクラスを複数まとめて所有しているという構造です。関連とよく似ていますが、関連より強い関係になります。
コメント