Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Какие принципы есть в ООП?
Объектно-ориентированное программирование базируется на четырех ключевых принципах, которые делают код более модульным, переиспользуемым и легким в поддержке.
1. Инкапсуляция (Encapsulation)
Принцип скрытия внутренней реализации объекта и предоставления только необходимого интерфейса.
class User {
private string $password;
private string $email;
public function setPassword(string $password): void {
if (strlen($password) < 8) {
throw new InvalidArgumentException('Password too short');
}
$this->password = password_hash($password, PASSWORD_BCRYPT);
}
}
Преимущества: контроль доступа, валидация данных, независимость реализации.
2. Наследование (Inheritance)
Механизм переиспользования кода через иерархию классов.
class Animal {
protected string $name;
public function speak() { return "Sound"; }
}
class Dog extends Animal {
public function speak() { return "Woof!";
}
}
Преимущества: переиспользование кода, типизация, полиморфизм.
3. Полиморфизм (Polymorphism)
Способность объектов разных классов отвечать на один вызов по-разному.
interface PaymentGateway {
public function charge(float $amount): bool;
}
class StripeGateway implements PaymentGateway {
public function charge(float $amount): bool { return true; }
}
Преимущества: гибкость, расширяемость, слабая связанность.
4. Абстракция (Abstraction)
Представление объекта упрощенной моделью, скрывающей сложность.
abstract class Database {
abstract public function connect(): void;
}
class MySQL extends Database {
public function connect(): void { }
}
Преимущества: упрощение, скрытие деталей, создание контрактов.
Итоговая таблица
| Принцип | Суть | Пример |
|---|---|---|
| Инкапсуляция | Скрытие данных | private методы |
| Наследование | Переиспользование | extends |
| Полиморфизм | Многоформность | implements |
| Абстракция | Упрощение сложности | abstract классы |
Эти принципы работают вместе, образуя основу чистого и модульного кода.