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

Опубликовано: 2022-11-19

Универсальность языка программирования Java позволяет повторно использовать код, уменьшая дублирование между классами. Java облегчает повторное использование кода, создавая отношения между классами, и эти отношения бывают двух типов: наследование и ассоциация. В то время как наследование позволяет нам реализовать отношение "является" и создать новый класс из существующего класса, ассоциация или отношение "имеет-а" обеспечивает возможность повторного использования кода.

Отношение has-a далее делится на две категории: агрегация и композиция в Java . Эта статья исследует концепцию композиции в Java и поможет вам понять ее основы на примерах.

Оглавление

Обзор отношений в Java

Отношения в Java относятся к различным способам связи классов. В общем, в Java есть два типа отношений:

  • Отношения
  • Имеет отношения

Композиция на Java

Источник

Есть-отношения (Наследование)

Функция наследования в Java позволяет нам реализовать отношения is-a. В этом случае один класс наследует другой класс. Например, если класс «Цветок» наследует другой класс, «Лилия», мы можем сказать, что класс «Лилия» имеет отношение «является» с «Цветком». Это также подразумевает, что лилия — это цветок.

Пример: лилия — это цветок, компьютер — это устройство и т. д.

Имеет отношения (ассоциация)

Отношение has-a означает, что класс использует экземпляр другого класса, и такое отношение в Java называется ассоциацией. Например, если класс P содержит ссылку на другой класс Q, это означает, что P может получить доступ ко всем свойствам класса Q.

Пример: у компьютера «есть» процессор, у пчелы «есть» жало и т. д.

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

  • Один ко многим: один объект связан с несколькими объектами.
  • Один к одному: один объект связан с одним объектом.
  • Многие-ко-многим: многие объекты связаны с другими несколькими объектами.
  • Многие к одному: многие объекты связаны с одним объектом.

Ассоциация бывает двух видов: агрегация и композиция.

Композиция на Java

Композиция в Java — это метод проектирования для реализации отношений has-a между классами. В этой ассоциации один класс содержит другой класс. Более того, содержащийся класс зависит от содержащего его класса и не может существовать независимо. Другими словами, один класс включает в себя другой класс с взаимозависимой функциональностью.

Например, класс «Автомобиль» содержит классы «Двигатель» и «Аккумулятор». Таким образом, «Автомобиль» находится в отношениях «имеет-отношение» с «Двигателем» и «Аккумулятором», а последние два не могут существовать независимо без «Автомобиля».

Рассмотрим еще один пример из жизни. Человеческое тело имеет почки, а органы не могут существовать без человеческого тела. Таким образом, если мы думаем, что «Человек» является классом, связанным с классом «Почки», это композиция в примере Java , поскольку почки не могут существовать независимо без человеческого тела.

Эксклюзивный вебинар upGrad по разработке программного обеспечения для вас –

Бизнес SAAS — в чем отличие?

Реализация композиции в примере Java

Теперь рассмотрим следующую программу, демонстрирующую концепцию композиции в Java . Мы разобьем его на шаги для лучшего понимания.

Шаг 1: На первом этапе мы создадим класс «Автомобиль», объявим и определим методы и элементы данных.

Класс Автомобиль

{

// объявление элементов данных и методов

цвет частной строки;

частная внутренняя скорость;

public void carFeatures()

{

System.out.println("Цвет автомобиля= "+цвет +" Максимальная скорость= " + скорость);

}

public void setColor (цвет строки)

{

этот.цвет = цвет;

}

public void setspeed(int speed)

{

это.скорость = скорость;

}

}

Шаг 2: Далее мы создадим класс «Fiat», который расширяет класс «Car». Класс «Fiat» использует метод start() объекта класса FiatEngine через композицию, подразумевая, что класс «Fiat» «имеет» FiatEngine. Fiat — это автомобиль, поэтому он происходит от класса «Автомобиль».

класс Fiat расширяет автомобиль

{

//наследует все свойства класса Car

публичная пустота setStart()

{

FiatEngine e = новый FiatEngine();

е.старт();

}

}

Шаг 3: На следующем этапе программы композиции Java мы создадим класс FiatEngine, с помощью которого мы будем использовать объект класса в указанном выше классе «Fiat».

класс FiatEngine

{

публичное пустое начало ()

{

System.out.println("Двигатель запущен.");

}

публичная недействительная остановка ()

{

System.out.println("Двигатель остановлен.");

}

}

Шаг 4: На последнем этапе программы мы создадим класс CompositionExample, создадим объект класса «Fiat» и инициализируем его.

класс CompositionExample

{

public static void main (аргументы String [])

{

Fiat f = новый Fiat();

f.setColor («Черный»);

f.установить скорость (175);

f.CarFeatures();

h.setStart();

}

}

Выход:

Цвет автомобиля = черный Максимальная скорость = 175

Двигатель запущен.

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

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

Агрегация и композиция в Java — это два вида отношений has-a, причем оба они различаются с точки зрения зависимости между классами. В агрегации контейнерный и ссылочный классы существуют независимо, в то время как ссылочный класс композиции перестает существовать без класса-контейнера. Таким образом, ссылочный класс зависит от своего класса-контейнера по составу.

Вот пример из реальной жизни, чтобы понять разницу между агрегацией и композицией в Java . Автомобиль состоит из различных частей, таких как двигатель, тормоза, аккумулятор, фары, музыкальный проигрыватель и т. д. Хотя автомобиль может функционировать без музыкального проигрывателя, он не может работать без основных частей, таких как двигатель или аккумулятор. Следовательно, мы можем сказать, что у автомобиля и музыкального проигрывателя отношения агрегации, а у двигателя и автомобиля отношения композиции.

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

Теперь, когда у вас есть базовое понимание концепции композиции в Java, вот обзор преимуществ этой техники:

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

Популярные курсы и статьи по программной инженерии

Популярные программы
Программа Executive PG в разработке программного обеспечения - IIIT B Программа сертификации блокчейна — PURDUE Программа сертификации кибербезопасности - PURDUE MSC в области компьютерных наук - IIIT B
Другие популярные статьи
Зарплата облачного инженера в США в 2021-2022 гг. Заработная плата архитектора решений AWS в США Зарплата бэкенд-разработчика в США Зарплата Front End Developer в США
Заработная плата веб-разработчика в США Вопросы на собеседовании Scrum Master в 2022 году Как начать карьеру в сфере кибербезопасности в 2022 году? Варианты карьеры в США для студентов инженерных специальностей

Вывод

Композиция в Java — превосходный метод, если отношения между классами имеют значение «а», и вы хотите повторно использовать код. Подводя итог, вот несколько ключевых моментов, которые вам нужно помнить о композиции в Java:

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

Повысьте свою карьеру с помощью программы upGrad Executive PG в области разработки программного обеспечения

Разработка программного обеспечения — один из самых прибыльных вариантов карьеры для молодых специалистов. Если вы уже работаете в отрасли или хотите начать, вы должны зарегистрироваться в программе upGrad Executive PG в области разработки программного обеспечения . Программа обучает вас востребованным навыкам и десяти самым высокооплачиваемым языкам и инструментам программирования. Вы можете выбрать одну из четырех специализаций, включая Blockchain Development, Full Stack Development, DevOps и Cloud Backend Development.

Наряду с изучением самых высокооплачиваемых языков программирования вы можете работать над более чем 30 кейсами и проектами. Преподаватели мирового класса читают лекции в прямом эфире и онлайн-сессии в рамках курса. Поддержка студентов доступна круглосуточно.

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

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

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

Какова цель композиции в Java?

Композиция в Java позволяет повторно использовать код и обеспечивает лучшую тестируемость класса. Хотя Java не поддерживает множественное наследование, композиция позволяет это сделать.

Является ли композиция ООП?

Композиция — это фундаментальная концепция объектно-ориентированного программирования. Он описывает отношение has-a, когда один класс ссылается на один или несколько объектов других классов через переменные экземпляра.