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

Опубликовано: 2023-01-27

Оглавление

Основы ассоциации в Java:

Ассоциация может быть определена в Java как взаимосвязь между двумя отдельными классами, использующими их отдельные объекты. Типы отношений, управляемых ассоциацией Java:

  • Один к одному: существует только один производный класс для каждого родительского класса.
  • Один ко многим: один родительский класс может иметь более одного дочернего класса.
  • Многие к одному: один дочерний класс может быть связан с более чем одним суперклассом.
  • Многие ко многим: несколько родительских классов могут быть связаны с одним дочерним классом, и большее количество дочерних классов может быть связано с одним родительским классом.

После установления связи производные классы взаимодействуют с соответствующими базовыми классами для повторного использования их характеристик и свойств. В Java есть два типа ассоциации. Это совокупность и состав.

Агрегация в Java — более общий процесс по сравнению с композицией. Эти формы основаны на типе отношений, поддерживаемых между классами.

Введение в композицию в Java:

Метод проектирования в Java, который реализует отношение Has-A, называется композицией. Процесс наследования используется для повторного использования кода. Композиция в Java может быть выполнена с использованием переменной экземпляра, ссылающейся на другие объекты. Если объект конституирует другой объект таким образом, что составляющий объект не может существовать без сохранения основного объекта, такой вид отношения называется композицией. Чтобы быть более конкретным, композиция — это аспект, который описывает ссылку между двумя или более классами с помощью переменных экземпляра. Здесь экземпляр должен быть создан до использования мгновенных переменных. Давайте возьмем пример библиотеки для четкого понимания понятия «композиция».

В библиотеке есть множество книг. Каждая книга имеет отдельных авторов и названия. В библиотеке также должен быть справочник книг. В библиотеке также есть несколько книг, связанных с одним и тем же предметом или разными предметами. Здесь библиотека соответствует основному классу, а книги могут быть связаны с производным классом. Ассоциацию или отношения между книгами и библиотекой можно рассматривать как композицию. Это связано с тем, что класс «Книги» полностью зависит от библиотеки классов. Например, если уничтожается библиотека, то уничтожаются и все книги в ней.

Ознакомьтесь с нашими бесплатными технологическими курсами, чтобы получить преимущество над конкурентами.

Изучите наши популярные курсы по программной инженерии

Магистр компьютерных наук LJMU и IIITB Программа сертификатов кибербезопасности Caltech CTME
Учебный курс по полной разработке стека Программа PG в блокчейне
Программа Executive PG в Full Stack Development
Посмотреть все наши курсы ниже
Курсы по разработке программного обеспечения

Подробное описание композиции в Java:

Композиция — это форма ассоциации Java. Два взаимодействующих класса тесно связаны между собой, при этом производный класс полностью зависит от родительского класса. Независимое существование производного класса в этом случае невозможно. Например, двигатель без автомобиля не может существовать самостоятельно. Этот тип ассоциации сильно ограничен по сравнению с агрегацией. Композиция — это метод проектирования, и ее не следует путать с функцией Java.

Композицию можно использовать для моделирования объектов, в состав которых входят другие объекты. Между этими объектами существует отношение has-a. В этом типе ассоциации один объект содержит другой объект. Следовательно, составляющий объект полностью зависит от основного объекта в своем выживании. Таким образом, если содержащий объект разрушается, составной объект также затрагивается. Поэтому композиционное отношение можно рассматривать как часть целостного отношения, в котором существование части без целого невозможно. Другими словами, часть автоматически удаляется при удалении целого. Это означает, что целое находится в прочной связи с частью.

Изучайте онлайн-курсы по разработке программного обеспечения в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Востребованные навыки разработки программного обеспечения

Курсы JavaScript Базовые курсы Java Курсы по структурам данных
Курсы Node.js Курсы SQL Курсы разработки полного стека
Курсы НФТ Курсы DevOps Курсы по большим данным
Курсы React.js Курсы по кибербезопасности Курсы облачных вычислений
Курсы по проектированию баз данных Курсы Python Курсы по криптовалюте

Чем наследование отличается от композиции в Java?

Важно отметить, что функциональность наследования может быть реализована с помощью композиции и в Java. Хотя и наследование, и композиция используются для повторного использования кода соответствующим классом, между ними есть тонкие различия. Основное различие между этими двумя процессами заключается в том, что композиция — это метод проектирования, в отличие от наследования, которое является функцией Java. Другие основные различия между ними перечислены в таблице ниже.

Параметр

Состав

Наследование

Базовый Он включает отношение HAS-A. Он включает в себя отношения IS-A.
Повторное использование кода Код можно повторно использовать в нескольких классах. Повторное использование кода возможно только в одном классе, потому что только один интерфейс может быть расширен классом.
Сфера Это легко сделать во время выполнения. Функции лучше реализуются во время компиляции.
Финал Это облегчает повторное использование кода даже из конечных классов. Код из финальных классов нельзя использовать повторно в случае наследования.
Методы Методы не раскрыты. Для их взаимодействия используются публичные интерфейсы. Наследование предоставляет как защищенные, так и общедоступные методы базового класса.

Различия между агрегацией и композицией:

Агрегация

Состав

Это тип слабой ассоциации Java. Это более сильный тип ассоциации по сравнению с агрегацией.
Производный класс не зависит от базового класса. Следовательно, производный класс может продолжать существовать, даже если базовый класс уничтожен. Производный класс полностью зависит от базового класса. Следовательно, подкласс не может существовать, если суперкласс уничтожен.
Дочерний класс имеет собственное время жизни. Время жизни дочернего класса зависит от родительского класса.
Родительский класс использует дочерний класс в этом типе ассоциации. Следовательно, производный класс не принадлежит базовому классу. В этом типе ассоциации родительский класс владеет дочерним классом. Следовательно, родительский класс является владельцем дочернего класса.
Это составляет отношение HAS-A. Производный класс имеет базовый класс. Это составляет часть отношений. Производный класс является частью базового класса.
Ключевое слово Final не используется для обозначения агрегации. Ключевое слово Final может использоваться для обозначения композиции.
Пример: У машины есть водитель. Пример: Двигатель является частью автомобиля.

Прочтите наши популярные статьи, связанные с разработкой программного обеспечения

Как реализовать абстракцию данных в Java? Что такое внутренний класс в Java? Идентификаторы Java: определение, синтаксис и примеры
Понимание инкапсуляции в ООП на примерах Объяснение аргументов командной строки в C 10 основных функций и характеристик облачных вычислений в 2022 году
Полиморфизм в Java: концепции, типы, характеристики и примеры Пакеты в Java и как их использовать? Учебник по Git для начинающих: Изучайте Git с нуля

Преимущества использования композиции в Java:

  • Композиция облегчает повторное использование кода Java.
  • Хотя Java не поддерживает множественное наследование, этот пробел может быть восполнен с помощью этого метода проектирования.
  • Используя композицию, класс может быть лучше проверен на способности.
  • Код стал более гибким благодаря использованию композиции. Реализация составного класса может быть заменена расширенной версией.
  • Члены объекта могут быть изменены во время выполнения для динамического изменения поведения программы с использованием отношения композиции.

Ограничения композиции в Java:

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

Если вам интересно узнать больше о Java, разработке программного обеспечения с полным стеком, ознакомьтесь с программой Executive PG upGrad и IIIT-B по разработке программного обеспечения — специализация в разработке полного стека, которая предназначена для работающих профессионалов и предлагает более 500 часов интенсивного обучения. , более 9 проектов и заданий, статус выпускника IIIT-B, практические практические проекты и помощь в трудоустройстве в ведущих фирмах.

Хотите поделиться этой статьей?

Подготовьтесь к карьере будущего

Подать заявку на получение степени магистра в области разработки программного обеспечения