Клас
Шаблон або креслення, що визначає атрибути (дані) та методи (поведінку) об'єкта.
Клас у програмуванні — це визначений користувачем шаблон, який слугує 'кресленням' для створення об'єктів. Він інкапсулює дані та пов'язані з ними функції в єдину сутність.
Складові класу:
- Атрибути (поля): Змінні, що зберігають стан.
- Методи: Функції, що визначають поведінку.
- Конструктор: Спеціальний метод для ініціалізації нових об'єктів.
- Модифікатори доступу: public, private, protected (визначають видимість).
Класи підтримують спадкування (Inheritance), дозволяючи створювати нові класи на основі існуючих.
graph LR
Center["Клас"]:::main
Pre_object_oriented_programming["object-oriented-programming"]:::pre --> Center
click Pre_object_oriented_programming "/terms/object-oriented-programming"
Rel_object["object"]:::related -.-> Center
click Rel_object "/terms/object"
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;
🧒 Простими словами
Уяви, що ти архітектор. Клас — це креслення будинку на папері. Ти можеш за цим одним кресленням побудувати багато реальних будинків (об'єктів). Креслення саме по собі жити не може, але воно каже, де будуть вікна і двері.
🤓 Expert Deep Dive
Таблиця віртуальних функцій (vtable) забезпечує динамічну диспетчеризацію для поліморфізму. Абстрактні класи не можуть бути інстанційовані напряму. Sealed або final класи забороняють спадкування. Метакласи (у Python) — це класи, екземплярами яких є інші класи (класи, що створюють класи). Diamond problem виникає при множинному спадкуванні.