2013-10-26 35 views
0

我想知道,當兩個類之間存在聚合或合成關係時,兩個類可以共享對方的屬性嗎?類圖中的聚合和組合關係

如果有一個叫做account的類,它與class customer有構成關係 那麼class account是否可以訪問class customer的變量?

回答

0

是的。類可以訪問相關類的非私有字段,可以是聚合或組合。

在下面的示例中,A類& B擁有合成關係,A可以訪問B的字段和方法。但這取決於變量和方法的可見性。

class A { 
String test; 
B b; 
void printB(){ 
b.getTest();} 
} 

class B { 
private String test; 
public String getTest(){ 
return test; 
} 
} 
+0

我不同意。聚合不是關於可達性,而是與其他所有權特徵的關聯。構圖是一種更強大的聚合形式,其中「擁有」類只與擁有的類有聯繫,並且因此對其他類可能是不可見的。 – MrBackend

+0

誰告訴它與可訪問性有關?你讀過這個問題了嗎?問題在於兩個類之間是否存在關係,是否可以訪問相關類的某些屬性,是的,但這取決於某些條件。 –

+0

共享屬性聽起來像對我的可訪問性。 – MrBackend

0

如果兩個類都與關係連接,它不是重要的。如果屬性的可見性設置爲public(或者如果元素駐留在相同的包中則爲包),則任何元素都可以訪問屬性。例如,您可以在活動動作中訪問類別的公共屬性,其中引用類型是具有公共屬性的類別等。