類圖的各種箭頭,各種關係總是記了忘,忘了記,這次畫個圖再加深一下記憶:
聚合和組合是兩種比較特殊的關聯關係。補充如下:
1.繼承
子類擁有超類的所有屬性和行爲
class A{}
//B繼承了A中的所有的方法和屬性,對於私有的方法和屬性,子類只能是擁有,但無法直接使用。
class B extends A{}
2.關聯
一般以類的屬性形式出現在關聯類中,使用成員變量來實現。又分爲聚合關係和組合關係。
class A{}
class B{
A a;//成員變量引入了A類
}
3.聚合
has a:強關聯,一個類的實例由另一個類的實例構成,後期使用不會因爲對象的刪除而刪除。
class A{}
class B{
A a;//成員變量引入了A類
B(A a){
this.a = a;
}
}
4.組合
contains a:強聚合,組合的對象不能由其他對象共享,且與構成他的對象一起消亡。整體和部分是不可分割的,有共同的生命週期。
class A{}
class B{
A a;//成員變量引入了A類
B(){
this.a = new A();
}
}