Объектно-ориентированное программирование (ООП) — это одна из парадигм разработки. Парадигмой называют набор правил и критериев, которые соблюдают разработчики при написании кода. Если представить, что код — это рецепт блюда, то парадигма — то, как рецепт оформлен в кулинарной книге.
Парадигма помогает стандартизировать написание кода. Это снижает риск ошибок, ускоряет разработку и делает код более читабельным для других программистов. Какие есть еще парадигмы мы расскажем в ещё другой статье.
Суть понятия объектно-ориентированного программирования (ООП) в том, что все программы, написанные с применением этой парадигмы, состоят из объектов. Каждый объект — это определённая сущность со своими данными и набором доступных действий. При котором программа рассматривается как набор объектов, взаимодействующих друг с другом.
Идеология объектно-ориентированного программирования разрабатывалась, чтобы связать поведение определенного объекта с его классом. Людям проще воспринимать окружающий мир как объекты, которые поддаются определенной классификации (например, разделение на живую и неживую природу).
Объектно-ориентированное программирование используется, чтобы:
- структурировать информацию и не допускать путаницы;
- точно определять взаимодействие одних элементов с другими;
- повышать управляемость программы;
- быстрее масштабировать код под различные задачи;
- лучше понимать написанное;
- эффективнее поддерживать готовые программы;
- внедрять изменения без необходимости переписывать весь код.
Структура ООП
В коде, написанном по парадигме ООП, выделяют четыре основных элемента:
Объект — основной элемент кода. Это сущность с данными и набором операций, которые можно с ними совершать. Например, в интернет-магазине объектом может быть карточка товара.
Атрибуты — это данные внутри объекта. Например, чтобы заполнить карточку, нужно добавить название товара, цену, описание и фото.
Методы — это операции, которые можно совершить с данными внутри объекта. Методы у каждого объекта могут быть разными. Например, в «Карточке товара» можно обновить данные о наличии или изменить цену.
Методы и атрибуты бывают открытыми (public) и закрытыми (private):
- Открытые методы и атрибуты доступны другим объектам. Если атрибут «Цена» у объекта «Карточка товара» открытый, его можно использовать в объекте «Корзина». Это позволит сложить цены нескольких товаров и получить общую стоимость заказа.
- С закрытыми атрибутами и методами можно работать только внутри класса. Так ошибки в одних объектах не повлияют на работу других.
Класс — это шаблон, по которому создаются объекты. Например, чтобы создать тысячи карточек товаров, нужно создать класс «Товары» и прописать, какие атрибуты и методы будут у всех объектов внутри этого класса.
Классы создаются для всех объектов в программе. При создании интернет-магазина нужно создать классы не только для карточек товаров или профилей пользователя, но и для кнопок.
На примере
Давайте разберем на примере языка PHP вышесказанную структуру:
// Описание класса Person
class Person
{
// Указываем что у нас есть свойство (атрибут)
private $name;
public function setName(string $name): void
{
$this->name = $name;
}
public function sayHello(): string
{
echo $name . ' say hello!';
}
}
// Создаём объект класса Person
$a = new Person();
// Вызываем метод объекта
$a->setName('Ivan');
// Вызываем метод объекта
$a->sayHello(); // На экране будет показано "Ivan say hello!"
// Создаём другой объект класса Person
$b = new Person();
// Вызываем метод объекта
$b->setName('Anton');
// Вызываем метод объекта
$b->sayHello(); // На экране будет показано "Anton say hello!"
Принципы ООП
Объектно-ориентированное программирование базируется на 4 основных принципах, которые обеспечивают удобство использования этой парадигмы: