2013-10-26 2 views
0

Я хочу знать, что, когда есть агрегирование или композиционное отношение между двумя классами, могут ли оба класса совместно использовать атрибуты друг друга?Соотношение агрегирования и компостирования в диаграмме классов

, если есть класс, называемый учетной записью, который имеет отношение состава с клиентом класса , поэтому учетная запись класса может обращаться к переменным класса клиента?

ответ

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

Это не важно, если два класса связаны с отношениями или нет. Атрибуты доступны любому элементу, если видимость атрибута установлена ​​в общедоступную (или пакет, если элементы находятся в одном пакете). Например, вы можете получить доступ к общедоступному атрибуту класса в действии действия, тип штыря которого является классом с публичными атрибутами и т. Д.

Смежные вопросы