Клас

Шаблон або креслення, що визначає атрибути (дані) та методи (поведінку) об'єкта.

Клас у програмуванні — це визначений користувачем шаблон, який слугує 'кресленням' для створення об'єктів. Він інкапсулює дані та пов'язані з ними функції в єдину сутність.

Складові класу:
- Атрибути (поля): Змінні, що зберігають стан.
- Методи: Функції, що визначають поведінку.
- Конструктор: Спеціальний метод для ініціалізації нових об'єктів.
- Модифікатори доступу: 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 виникає при множинному спадкуванні.

🔗 Пов'язані терміни

Попередні знання:

📚 Джерела