Объектно-ориентированное программирование (ООП)
Парадигма с использованием объектов с данными и методами (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;
🧠 Проверка знаний
🧒 Простыми словами
Представь инструкцию LEGO. Класс — это как инструкция для строительства дома. Каждый дом, который ты строишь по этой инструкции — это объект. Разные дома могут иметь общие части (наследование), но выглядеть по-разному (полиморфизм)!
🤓 Expert Deep Dive
Принципы SOLID направляют хороший дизайн ООП. Композиция вместо наследования избегает проблемы хрупкого базового класса. Duck typing (Python) позволяет полиморфизм без наследования.