java中的組合
Ⅰ java中對組合的定義
組合就是
A類的對象是B類的成員變數。相當於
A類是B類對象的一個屬性!
組合和繼承都很常見的!
Ⅱ JAVA中的聚集和組合的區別與聯系
聚合(Aggregation) 關系是關聯關系的一種,是強的關聯關系。聚合是整體和個體之間的關系。例如,汽車類與引擎類、輪胎類,以及其它的零件類之間的關系便整體和個體的關系。與關聯關系一樣,聚合關系也是通過實例變數實現的。但是關聯關系所涉及的兩個類是處在同一層次上的,而在聚合關系中,兩個類是處在不平等層次上的,一個代表整體,另一個代表部分
組合(Composition) 關系是關聯關系的一種,是比聚合關系強的關系。它要求普通的聚合關系中代表整體的對象負責代表部分對象的生命周期,組合關系是不能共享的。代表整體的對象需要負責保持部分對象和存活,在一些情況下將負責代表部分的對象湮滅掉。代表整體的對象可以將代表部分的對象傳遞給另一個對象,由後者負責此對象的生命周期。換言之,代表部分的對象在每一個時刻只能與一個對象發生組合關系,由後者排他地負責生命周期。部分和整體的生命周期一樣。
以上關系的耦合度依次增強(關於耦合度的概念將在以後具體討論,這里可以暫時理解為當一個類發生變更時,對其他類造成的影響程度,影響越小則耦合度越弱,影響越大耦合度越強)。由定義我們已經知道,依賴關系實際上是一種比較弱的關聯,聚合是一種比較強的關聯,而組合則是一種更強的關聯,所以籠統的來區分的話,實際上這四種關系、都是關聯關系。
聚合關系是是一種比較強的關聯關系,java中一般使用成員變數形式實現。對象之間存在著整體與部分的關系。例如上例中
<pre t="code" l="java">class Driver {
//使用成員變數形式實現聚合關系
Car mycar;
public void drive(){
mycar.run();
}
}假如給上面代碼賦予如下語義:車是一輛私家車,是司機財產的一部分。則相同的代碼即表示聚合關系了。聚合關系一般使用setter方法給成員變數賦值。
假如賦予如下語義:車是司機的必須有的財產,要想成為一個司機必須要先有輛車,車要是沒了,司機也不想活了。而且司機要是不幹司機了,這個車就砸了,別人誰也別想用。那就表示組合關系了。一般來說,為了表示組合關系,常常會使用構造方法來達到初始化的目的,例如上例中,加上一個以Car為參數的構造方法 <pre t="code" l="java">public Driver(Car car){
mycar = car;
}所以,關聯、聚合、組合只能配合語義,結合上下文才能夠判斷出來,而只給出一段代碼讓我們判斷是關聯,聚合,還是組合關系,則是無法判斷的。</ol>
Ⅲ java 所有組合
public static void main(String[] args) {
String s="123";
char[] ss= s.toCharArray();
StringBuffer set= new StringBuffer();
for(int i=0;i<6;i++){//6是所有組合總數,也就是ss.length 值的階乘
set.delete(0,set.length());
for(int j=0;j<ss.length;j++){
set.append(ss[(i+j)%ss.length]);
}
System.out.println(set.toString());
}
}
Ⅳ java怎麼理解組合/聚合關系給個例子最好能將細點
聚合(Aggregation)關系是關聯關系的一種,是強的關聯關系。聚合是整體和個體之間的關系。例如,汽車類與引擎類、輪胎類,以及其它的零件類之間的關系便整體和個體的關系。與關聯關系一樣,聚合關系也是通過實例變數實現的。但是關聯關系所涉及的兩個類是處在同一層次上的,而在聚合關系中,兩個類是處在不平等層次上的,一個代表整體,另一個代表部分。
組合(Composition)關系是關聯關系的一種,是比聚合關系強的關系。它要求普通的聚合關系中代表整體的對象負責代表部分對象的生命周期,組合關系是不能共享的。代表整體的對象需要負責保持部分對象和存活,在一些情況下將負責代表部分的對象湮滅掉。代表整體的對象可以將代表部分的對象傳遞給另一個對象,由後者負責此對象的生命周期。換言之,代表部分的對象在每一個時刻只能與一個對象發生組合關系,由後者排他地負責生命周期。部分和整體的生命周期一樣。
classDriver{
//使用成員變數形式實現關聯
Carmycar;
publicvoiddrive(){
mycar.run();
}
...
//使用方法參數形式實現關聯
publicvoiddrive(Carcar){
car.run();
}
}
聚合關系是是一種比較強的關聯關系,java中一般使用成員變數形式實現。對象之間存在著整體與部分的關系。例如上例中
classDriver{
//使用成員變數形式實現聚合關系
Carmycar;
publicvoiddrive(){
mycar.run();
}
}
假如給上面代碼賦予如下語義:車是一輛私家車,是司機財產的一部分。則相同的代碼即表示聚合關系了。聚合關系一般使用setter方法給成員變數賦值。
假如賦予如下語義:車是司機的必須有的財產,要想成為一個司機必須要先有輛車,車要是沒了,司機也不想活了。而且司機要是不幹司機了,這個車就砸了,別人誰也別想用。那就表示組合關系了。一般來說,為了表示組合關系,常常會使用構造方法來達到初始化的目的,例如上例中,加上一個以Car為參數的構造方法
publicDriver(Carcar){
mycar=car;
}
所以,關聯、聚合、組合只能配合語義,結合上下文才能夠判斷出來,而只給出一段代碼讓我們判斷是關聯,聚合,還是組合關系,則是無法判斷的。
Ⅳ java中什麼叫組合
組合就是 A類的對象是B類的成員變數。相當於 A類是B類對象的一個屬性!
組合和繼承都很常見的!
Ⅵ java中的組合與繼承
根據漢字意思就可以理解,,,組合是 不同的東西 組裝在一起. 比如組裝電腦, 我們需要 CPU,硬碟,鍵盤等部件 , 而每種部件都有很多品牌. 你可以選擇AMD的CPU也可以選擇Intel的CPU.只要你的主板支持這些CPU介面即可.
因此,我們常常使用介面來組合搭建框架.這樣好處在於以後只要提供介面的不同實現,即可改變系統的功能.
繼承 則是 在單一組件上的擴展. 相當於 奔騰3處理器 升級到 奔騰4..
大概就是這個意思.自己意會