Что такое композиция в Java с примерами
Опубликовано: 2022-11-19Универсальность языка программирования Java позволяет повторно использовать код, уменьшая дублирование между классами. Java облегчает повторное использование кода, создавая отношения между классами, и эти отношения бывают двух типов: наследование и ассоциация. В то время как наследование позволяет нам реализовать отношение "является" и создать новый класс из существующего класса, ассоциация или отношение "имеет-а" обеспечивает возможность повторного использования кода.
Отношение has-a далее делится на две категории: агрегация и композиция в 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, когда один класс ссылается на один или несколько объектов других классов через переменные экземпляра.