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

«Что такое ООП?» — вопрос из категории ООП, который задают на 45% собеседований PHP Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Четыре основных принципа (столпа) ООП:

  1. Инкапсуляция: Сокрытие внутреннего состояния объекта и предоставление доступа к нему только через публичные методы. Это защищает данные от некорректного использования.
    class BankAccount {
        private $balance = 0;
        public function deposit($amount) {
            if ($amount > 0) $this->balance += $amount;
        }
        public function getBalance() { return $this->balance; }
    }
  2. Наследование: Возможность создания нового класса (дочернего) на основе существующего (родительского) с наследованием его свойств и методов. Это способствует повторному использованию кода.
    class Vehicle { protected $speed; }
    class Car extends Vehicle { 
        public function setSpeed($speed) { $this->speed = $speed; }
    }
  3. Полиморфизм: Возможность объектов с одинаковым интерфейсом (например, унаследованным методом) иметь разную реализацию. Часто реализуется через переопределение методов или интерфейсы.
    interface Logger { public function log($message); }
    class FileLogger implements Logger { public function log($m) { /* запись в файл */ } }
    class DatabaseLogger implements Logger { public function log($m) { /* запись в БД */ } }
  4. Абстракция: Моделирование ключевых характеристик сущности, скрывая сложные детали реализации. Достигается через абстрактные классы и интерфейсы.
    abstract class Shape {
        abstract public function calculateArea();
    }

Преимущества: Улучшает организацию кода, его повторное использование, масштабируемость и упрощает поддержку больших проектов.

Видео-ответы