Концепции и примеры ООП, которые должен знать каждый программист

Опубликовано: 2021-02-26

В этой статье мы рассмотрим основные концепции объектно-ориентированного программирования и обсудим часто используемые термины: абстракция, инкапсуляция, наследование и полиморфизм.

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

Прежде чем мы поговорим о четырех столпах объектно-ориентированного программирования, давайте ознакомимся с общими терминами, которые мы очень часто слышим при использовании любого из объектно-ориентированных языков: Java, python, c++.

Оглавление

Сорт

Класс — это набор объектов, определяющий набор свойств, общих для всех объектов определенного типа. Его также можно назвать чертежом для создания объектов. Класс включает в себя следующие компоненты:

Имя класса: имя, данное классу, начинающееся с заглавной буквы.

Модификаторы: в зависимости от функциональности модификаторы класса могут быть общедоступными, частными или стандартными.

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

Объект

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

Методы

Методы определяются внутри класса и используются для выполнения определенной функции. Метод может содержать или не содержать входной параметр. В приведенном ниже коде показано использование класса, объекта и метода при программировании на языке Java.

В приведенном выше коде Player — это имя, данное нашему классу, а run — это параметр, передаваемый в метод Batsman, который возвращает количество прогонов, набранных им при вызове через объект с именем myobj.

Модификаторы доступа

Модификаторы доступа в Java определяют доступность или степень метода, конструктора или класса. Четыре типа модификаторов доступа:

  1. Публичный : код, написанный в классе, доступен другим классам.
  2. Private : написанный код доступен только внутри этого конкретного класса.
  3. По умолчанию : написанный код доступен в том же пакете.
  4. Защищено : код доступен внутри пакета, а также через подкласс. При отсутствии дочернего класса доступ к коду невозможен.

Теперь давайте продолжим и поговорим о сути объектно-ориентированного программирования.

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

Термин наследование относится к наследованию свойств одного класса другому. Свойства относятся к атрибутам и методам родительского класса. Родительский класс — это класс, свойства которого должны наследоваться другими классами. Классы, которые наследуют свойства родительского класса, называются дочерними классами или подклассами. Для наследования свойств родительского класса дочернему классу используется ключевое слово extends .

В приведенном выше примере спонсором является родительский класс, а владельцем является его атрибут. Мы создали подкласс Team, который наследует родительский класс Sponsor. Мы создали объект Team, который может обращаться к свойствам родительского класса. Вывод приведенного выше кода:

Полиморфизм

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

Кроме того, его также можно использовать для организации свадеб и концертов. Наконец, та же площадка может быть использована для парковки транспортных средств. Отсюда мы можем сделать вывод, что одна переменная может иметь несколько реализаций в зависимости от ее использования.

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

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

В Method Overriding метод родительского класса может быть переопределен дочерним классом. При этом один и тот же метод может работать по-разному при вызове родительским классом и дочерним классом.

Пример полиморфизма показан ниже:

В этом примере, используя один и тот же метод, мы можем выполнять несколько задач. Тот же метод Voice при использовании в Bird будет выводить «Turr Turr», а при использовании с Duck — «Quack Quack». Снимок вывода показан ниже:

Абстракция

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

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

Здесь мы создали объект подкласса Duck, который наследуется от основного класса Bird. Результат показан ниже:

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

Инкапсуляция — это процесс связывания кода и данных в единое целое. Здесь переменные класса скрыты от других классов (с помощью ключевого слова private ), но доступ к ним возможен только через функцию-член. Функции установки и получения используются для доступа к закрытым переменным абстрактного класса.

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

  1. Код можно легко использовать повторно, что позволяет сэкономить много времени и средств на разработку кодов.
  2. Это помогает проектировать код хорошо структурированным образом, чтобы любому новому программисту не приходилось тратить долгие часы на понимание кода.
  3. Помимо помощи пользователям в эффективном написании кода, он гарантирует, что безопасность не будет нарушена.

Оформить заказ: OOPs Interview Вопросы и ответы

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

Заключение

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

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

Что такое факториал?

Факториал — это математическая операция, которая подсчитывает произведение заданного числа и всех чисел, следующих за ним. Факториал — это произведение, которое показывает, сколько раз число умножается на единицу. Например, факториал числа 5 равен 5x4x3x2x1, что равно 120. Факториал числа 1 равен 1, а факториал числа 0 также равен 1. это должно быть на кончиках ваших рук.

Как написать программу факториальной рекурсии?

Факториал числа n определяется как n! = 1 × 2 × 3 × 4 × … × п. Факториал 5 равен 120. Функция факториала определяется как factorial(5) = 120. Рекурсивная функция — это функция, которая вызывает сама себя. Это пример факториальной функции в рекурсивном стиле factorial(n) = n * factorial(n - 1). Написать программу факториальной рекурсии очень просто, а код очень похож на итеративную версию. Чтобы написать итеративную версию, мы используем переменную с именем n, увеличиваем ее на единицу и умножаем на переменную с именем prod, которая отслеживает последовательные значения n. Выходное значение также сохраняется в переменной prod. В рекурсивной версии вы по-прежнему используете переменную с именем n. Однако вам не нужна переменная для хранения значения prod, и вы можете напрямую вернуть prod из функции.

Что такое рекурсия в программировании?

Слово рекурсия происходит от латинского слова recurrere, что означает возвращаться. В большинстве языков программирования функция, которая вызывает сама себя, называется рекурсией. Этот циклический процесс продолжается до тех пор, пока не будет достигнут базовый случай, который не определен ни в одной рекурсивной функции. Рекурсия — это эффективный метод структурированного и организованного решения проблемы. Это хорошая стратегия программирования. Например, проблема ряда Фибоначчи, факториальная проблема и т. д. могут быть решены как итерационным, так и рекурсивным образом.