Агрегация
Если построение новых классов из существующих происходит при использовании механизма агрегации, то композитный объект строится из других объектов-компонентов, являющихся его частями.
Java поддерживает агрегацию объектов по ссылке, поскольку объекты могут содержать другие объекты непосредственно, целиком. Поля могут содержать только значения примитивных типов или ссылки на другие объекты. Каждый объект класса CharStack
имеет поле для хранения ссылки на объект-массив, который содержит символы. Каждый объект-стек также имеет поле примитивного типа int
для хранения индексного значения, которое обозначает вершину стека. Это отражено в описании класса CharStack
, который содержит переменную экземпляра для каждой из этих частей. В отличие от объектов-компонентов, для которых в полях хранятся ссылки, значения примитивных типов непосредственно хранятся в полях композитного объекта. Отношение агрегации изображено на диаграмме UML на рис. 1.7, который показывает, что каждый объект класса CharStack
будет иметь один объект-массив символов, с ним связанный.
Рис. 1.7. Диаграмма класса, изображающая агрегацию
Основные принципы Java
- Программный код на Java должен быть инкапсулирован в классы.
- Существует два типа значений в Java: ссылки на объекты и атомарные значения примитивных типов.
- Ссылки определяют объекты, которые создаются из классов.
- Объектами можно управлять только при помощи ссылок.
- Объекты в Java не могут содержать другие объекты; они могут только иметь ссылки на другие объекты.
- Удалением объектов управляет система выполнения.