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

Парадигма с использованием объектов с данными и методами (4 принципа).

Объектно-ориентированное программирование (ООП) — это парадигма, которая структурирует код вокруг «объектов» — самодостаточных единиц, содержащих данные (атрибуты) и код (методы).

Четыре столпа ООП:
1. Инкапсуляция: Объединение данных и методов, сокрытие внутреннего состояния
2. Абстракция: Выставление только существенных характеристик
3. Наследование: Классы наследуют свойства/методы от родительских классов
4. Полиморфизм: Один интерфейс, разные реализации

        graph LR
  Center["Объектно-ориентированное программирование (ООП)"]:::main
  Rel_functional_programming["functional-programming"]:::related -.-> Center
  click Rel_functional_programming "/terms/functional-programming"
  Rel_java["java"]:::related -.-> Center
  click Rel_java "/terms/java"
  Rel_stored_program_concept["stored-program-concept"]:::related -.-> Center
  click Rel_stored_program_concept "/terms/stored-program-concept"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧠 Проверка знаний

1 / 1

🧒 Простыми словами

Представь инструкцию LEGO. Класс — это как инструкция для строительства дома. Каждый дом, который ты строишь по этой инструкции — это объект. Разные дома могут иметь общие части (наследование), но выглядеть по-разному (полиморфизм)!

🤓 Expert Deep Dive

Принципы SOLID направляют хороший дизайн ООП. Композиция вместо наследования избегает проблемы хрупкого базового класса. Duck typing (Python) позволяет полиморфизм без наследования.

📚 Источники