В этой статье я простыми словами попытаюсь объяснить что такое ООП и почему такой стиль сейчас очень популярный. Вообще в мире программирования существуют разные парадигмы написания программ, но самые основные можно отметить два, это ФП и ООП.
ООП - объектно-ориентированное программирование, как из названия понятно, что в программе которой используется данная парадигма всё ориентированно на объекты. Такой стиль позволяет из всего представить объект.
Классы
Основная единица в такой парадигме это класс, то есть если программа написана в стиле ООП, значит она построена на классах. Класс - это сущность на основе которого создаются объекты ( экземпляры класса ). Возьмём пример из жизни, чтобы построит дом - объект, нужен чертёж - класс, чтобы понимать как дом будет выглядеть, поэтому класс называют именем существительным например: class User, class Point, class Home.
Сам класс максимум может состоять из трёх частей (в некоторых языках и из четырёх ):
- Конструктор,
- Поля класса ( свойства ),
- методы класса ( поведение ),
- Деструктор ( только в языке С/С++)
Конструктор - это функция которая вызывается самой первой при создание экземпляра класса.
Поля класса - это просто переменные в которых могут хранится какие-то данные.
Методы класса - функции которые определяют поведение объекта, то есть что он может делать, например может отнять определённое число от суммы которая указана в объекте и т.д.
В чём преимущество такого стиля? Это читаемость кода например логика и данные связаны с пользователем объединяем в один класс, также масштабируемость программы например нам надо, чтобы в программе можно было создавать групповые чаты, просто берём создаём класс Room и в этом классе будут регистрироваться все экземпляры класса User, также в классе Room добавляем функции для управления группой, вот и всё.
В самом коде мы в основном взаимодействуем о экземпляром класса, а не самим классом. Конечно с классом можно взаимодействовать, но это другая тема.
Программу тоже можно представить в виде объекта и если представить что класс у нас кирпич, то вот что получится.
Важно отметить, что в ООП присутствуют не только классы, но и структуры, интерфейсы и так далее, но основная сущность это класс.
Также в ООП выделяют несколько принципов которые надо знать, чтобы действительно эффективно применять ООП в коде:
- Наследование.
- Инкапсуляция.
- Полиморфизм.
- Абстракция.
Но о этих принципах будет говорить о следующих статьях.