Разница между агрегацией и композицией в Java

Оглавление:

Разница между агрегацией и композицией в Java
Разница между агрегацией и композицией в Java

Видео: Разница между агрегацией и композицией в Java

Видео: Разница между агрегацией и композицией в Java
Видео: Урок 12. Часть 2. Отношения между классами - ассоциация, агрегация композиция. 2024, Июль
Anonim

Ключевая разница - агрегация и композиция в Java

Агрегация - это ассоциация между двумя объектами, описывающая отношение «имеет-а». Композиция - это более конкретный тип агрегации, который подразумевает право собственности. Ключевое различие между агрегацией и композицией в Java заключается в том, что если содержащийся объект может существовать без существования объекта-владельца, то это агрегация, а если содержащийся объект не может существовать без существования объекта-владельца, то это композиция..

Объектно-ориентированное программирование (ООП) - основная парадигма в разработке программного обеспечения. Он используется для моделирования программного обеспечения с использованием объектов. Объекты создаются с помощью классов. Класс состоит из свойств и методов. В программном обеспечении есть несколько объектов. Каждый объект взаимодействует друг с другом посредством передачи сообщений. Связь между двумя объектами называется ассоциацией. И агрегация, и композиция представляют собой два типа ассоциации. Отношение «имеет» описывает, что один объект может использовать другой объект. Агрегация и композиция могут быть реализованы на поддерживающих ООП языках. Если содержащийся объект может существовать без существования объекта-владельца, то связь между этими двумя объектами является агрегацией. Если содержащийся объект не может существовать без существования объекта-владельца, то ассоциация между этими двумя объектами представляет собой композицию.

Что такое агрегация в Java?

Агрегация - это тип ассоциации. Если класс имеет ссылку на сущность, это называется агрегацией. Агрегация представляет отношение «имеет-а». Объект Student может иметь такие свойства, как student_id, имя, адрес. Этот объект также может иметь другой объект, называемый адресом, со своей собственной информацией, такой как город, штат, страна. В этой ситуации у Студента есть ссылочный адрес сущности. Это отношения типа «имеет».

Разница между агрегацией и композицией в Java
Разница между агрегацией и композицией в Java

Рисунок 01: Класс оценок

Разница между агрегацией и композицией в Java
Разница между агрегацией и композицией в Java

Рисунок 02: Основная программа для описания агрегации

Согласно приведенной выше программе, класс Marks состоит из трех свойств: отметки по математике, английскому языку и естественным наукам. Студент имеет объект Оценки. Он имеет свои собственные свойства, которые являются признаками математики, английского языка и естественных наук. В основном методе создается объект Marks и присваиваются значения оценок. Объект студента с номером s1 может использовать объект отметок с номером m1. Таким образом, между Студентом и Метками существует отношение «имеет». Объект Marks может существовать без объекта Student. Следовательно, это агрегация.

Что такое композиция в Java?

Композиция – это тип ассоциации. Это особая форма агрегации, которая подразумевает право собственности. Предположим, что есть два класса, называемые классом A и B. Если объект класса B не может существовать, если объект класса A уничтожен, то это композиция. Книга состоит из множества страниц. Если книга будет уничтожена, страницы также будут уничтожены. Объекты страницы не могут существовать без объекта книги. См. приведенную ниже программу.

Разница между агрегацией и композицией в Java_Рисунок 03
Разница между агрегацией и композицией в Java_Рисунок 03

Рисунок 03: Учебный класс

Разница между агрегацией и композицией в Java_Рисунок 04
Разница между агрегацией и композицией в Java_Рисунок 04

Рисунок 04: Школьный класс

Ключевая разница между агрегацией и композицией в Java
Ключевая разница между агрегацией и композицией в Java

Рисунок 05: Основная программа для описания композиции

Согласно приведенной выше программе, класс имеет два свойства: name и numOfStudents. Школа представляет собой набор объектов Classroom. В основном методе создаются два объекта Classroom. Они добавляются в «классы». Эти «классы» передаются школьному объекту. Наконец, название класса и количество учеников выводятся путем перебора коллекции. Если объект «Школа» будет уничтожен, объекты «Класс» также будут уничтожены. Это пример композиции. Он также содержит отношение «имеет-а» и подразумевает владение.

Какова связь между агрегацией и композицией в Java?

Агрегация и композиция - это два типа ассоциации, а композиция - это специализированный тип агрегации. Композиция является подмножеством агрегации

В чем разница между агрегацией и композицией в Java?

Агрегация и композиция в Java

Агрегация - это ассоциация между двумя объектами, описывающая отношение «имеет». Композиция - это более конкретный тип агрегации, который подразумевает владение.
Использование
Агрегация используется, когда один объект использует другой объект. Композиция используется, когда один объект владеет другим объектом.
Влияние на объекты
В агрегации уничтожение объекта-владельца не повлияет на содержащий объект. В композиции уничтожение объекта-владельца повлияет на содержащий объект.

Резюме – Агрегация и композиция в Java

Агрегация и композиция - это две концепции в ООП. Отношение «имеет» описывает, что один объект может использовать другой объект. Агрегация - это ассоциация между двумя объектами, описывающая отношение «имеет-а». Композиция - это более конкретный тип агрегации, который подразумевает владение. Разница между агрегацией и композицией в Java заключается в том, что если содержащийся объект может существовать без существования объекта-владельца, то это агрегация, а если содержащийся объект не может существовать без существования объекта-владельца, то это композиция.

Рекомендуемые: