Об'єктно-орієнтоване програмування (ООП)

Парадигма з об'єктами, що мають дані та методи (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) дозволяє поліморфізм без наслідування.

📚 Джерела