Концепции ООП в Java: что такое, основы с примерами

Что такое ООП?

Система объектно-ориентированного программирования (ООП) — это концепция программирования, основанная на принципах абстракции, инкапсуляции, наследования и полиморфизма. Он позволяет пользователям создавать объекты по своему усмотрению и создавать методы для обработки этих объектов. Основная концепция ООП заключается в создании объектов, повторном использовании их в программе и манипулировании этими объектами для получения результатов.

ООП, что означает «Объектно-ориентированное программирование», — это широко известная и широко используемая концепция в современных языках программирования, таких как Java.

Концепции ООП в Java с примерами

Фоллоwing — это общие концепции ООП в Java:

1) Класс

класс — это одна из основных концепций ООП, представляющая собой группу аналогичных сущностей. Это всего лишь логический компонент, а не физический объект. Давайте разберемся в этой одной из концепций ООП на примере: если у вас есть класс под названием «Дорогие автомобили», в нем могут быть такие объекты, как Mercedes, BMW, Toyota и т. Д. Его свойствами (данными) могут быть цена или скорость этих автомобилей. В то время как на этих автомобилях могут быть реализованы способы движения, движения задним ходом, торможения и т. д.

2) Объект

Объект может быть определен как экземпляр класса, и в программе может быть несколько экземпляров класса. Объект — это одна из концепций ООП Java, которая содержит как данные, так и функцию, которая работает с данными. Например – стул, велосипед, маркер, ручка, стол, машина и т. д.

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

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

4) Полиморфизм

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

5) Абстракция

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

6) Инкапсуляция

Инкапсуляция — одна из лучших концепций ООП Java для упаковки данных и кода. В этой концепции ООП переменные класса всегда скрыты от других классов. Доступ к нему можно получить только с помощью методов текущего класса. Например – в школе ученик не может существовать без класса.

7) Ассоциация

Ассоциация – это связь между двумя объектами. Это одна из концепций ООП в Java, которая определяет разнообразие объектов. В этой концепции ООП все объекты имеют отдельный жизненный цикл и не имеют владельца. Например, многие ученики могут общаться с одним учителем, в то время как один ученик также может общаться с несколькими учителями.

8) Агрегация

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

9) Состав

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

Преимущества ООП (системы объектно-ориентированного программирования):

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

Сравнение ООП с другими стилями программирования на примере.

Давайте разберемся на примере, чем концепции ООП Java отличаются от других подходов к программированию.

Языки программирования можно разделить на 3 основных типа

  1. Неструктурированные языки программирования: Самый примитивный из всех языков программирования, имеющий последовательный поток управления. Код повторяется по всей программе
  2. Языки структурированного программирования: Имеет непоследовательный поток управления. Использование функций позволяет повторно использовать код.
  3. Объектно-ориентированные языки программирования: объединяет данные и действия.

Нажмите здесь если видео недоступно

Давайте разберемся с этими 3 типами на примере.

Предположим, вы хотите создать банковское программное обеспечение с такими функциями, как

  1. Депозит
  2. Вывод
  3. Показать баланс

Неструктурированные языки программирования

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

int account_number=20;
int account_balance=100;

Предположим, внесен депозит в размере 100 долларов.

account_balance=account_balance+100

Далее вам необходимо отобразить баланс счета.

printf(“Account Number=%d,account_number)
printf(“Account Balance=%d,account_balance)

Сейчас сумма в 50 долларов снята.

account_balance=account_balance-50

Опять же, вам нужно отобразить баланс счета.

printf(“Account Number=%d,account_number)
printf(“Account Balance=%d,account_balance)

Неструктурированное программирование

Для любой дальнейшей операции пополнения или вывода средств — вы будете повторять одни и те же строки снова и снова.

Структурированное программирование

С появлением структурированного программирования повторяющиеся строки кода были помещены в такие структуры, как функции или методы. При необходимости выполняется простой вызов функции.

Структурированное программирование

Объектно-ориентированное программирование

В нашей программе мы имеем дело с данными или выполняем над ними определенные операции.

Фактически, наличие данных и выполнение определенных операций с этими данными является основной характеристикой любой программы.

Эксперты в программировании подумали об объединении данных и операций. Таким образом, произошло рождение объектно-ориентированного программирования, которое обычно называют ООП.

Один и тот же код на языках объектно-ориентированного программирования будет иметь одни и те же данные и некоторые действия, выполняемые с этими данными.

Class Account{
    int account_number;
    int account_balance;
public void showdata(){
    system.out.println(“Account Number”+account_number)
    System.out.println(“Account Balance”+ account_balance)
}
}

Объектно-ориентированное программирование

Объединив данные и действия, мы получим множество преимуществ перед структурным программированием. viz,

  • абстракция
  • Инкапсуляция
  • наследование
  • Полиморфизм

Они обсуждаются в более подробномtails в последующих уроках