Блог "Школы программной инженерии"

Что такое объектно-ориентированное программирование (ООП)?

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

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

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

Наследование
Наследование позволяет вам создать (дочерний) класс, производный от другого (родительского) класса, чтобы сформировать иерархию. Дочерний класс может повторно использовать поля и методы родительского класса, а также может реализовывать свои собственные уникальные поля и методы.

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

Зачем использовать ООП?

Объектно-ориентированное программирование имеет несколько преимуществ перед процедурным программированием:
  • ООП быстрее и проще в исполнении;
  • ООП обеспечивает чистую структуру для программ;
  • ООП помогает сохранять код "сухим" (DRY - «Не повторяй себя») и делает код проще для поддержки, модификации и отладки;

ООП делает возможным создание полностью повторно используемых приложений с меньшим кодом и временем разработки.

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

Источник