Материал предоставлен https://it.rfei.ru

Агрегация

Если построение новых классов из существующих происходит при использовании механизма агрегации, то композитный объект строится из других объектов-компонентов, являющихся его частями.

Java поддерживает агрегацию объектов по ссылке, поскольку объекты могут содержать другие объекты непосредственно, целиком. Поля могут содержать только значения примитивных типов или ссылки на другие объекты. Каждый объект класса CharStack имеет поле для хранения ссылки на объект-массив, который содержит символы. Каждый объект-стек также имеет поле примитивного типа int для хранения индексного значения, которое обозначает вершину стека. Это отражено в описании класса CharStack, который содержит переменную экземпляра для каждой из этих частей. В отличие от объектов-компонентов, для которых в полях хранятся ссылки, значения примитивных типов непосредственно хранятся в полях композитного объекта.

Отношение агрегации изображено на диаграмме UML на рис. 1.7, который показывает, что каждый объект класса CharStack будет иметь один объект-массив символов, с ним связанный.

Рис. 1.7. Диаграмма класса, изображающая агрегацию

НаследованиеОсновные принципы Java