Українська
Підсумки
Висновки
Клас описує дані й поведінку об’єктів одного виду, а об’єкти, створені операцією new, мають власний стан. Класи є посилальними типами: змінні зберігають посилання, присвоювання не копіює об’єкт, а null потребує перевірки. Стан об’єкта зберігають у приватних полях і відкривають через властивості, які перевіряють значення; автовластивості, init, required, обчислювані властивості та ключове слово field скорочують запис. Конструктори приводять об’єкт у коректний початковий стан, перевантажуються та викликають один одного через this(…), а первинні конструктори й ініціалізатори об’єктів роблять створення об’єктів коротшим. Пам’ять недосяжних об’єктів звільняє збирач сміття.
Питання для самоперевірки
- Що таке клас і об’єкт? Що утворює стан і поведінку об’єкта?
- Як оголосити клас і створити його об’єкт? Що означає
new()з типом цілі? - Що відбувається під час присвоювання змінних типу класу? Як порівнюються об’єкти
==? - Що таке
null? Як працює операція?.? - Чим поле відрізняється від властивості? Навіщо поля роблять приватними?
- Що означає ключове слово
this? - Як записати властивість із перевіркою значення? Що таке
value? - Чим відрізняються властивості
{ get; },{ get; init; }і{ get; private set; }? - Для чого призначений модифікатор
required? - Що таке обчислювана властивість? Що позначає ключове слово
field? - Коли компілятор створює конструктор за замовчуванням?
- Як працює ланцюжок конструкторів
: this(…)? - Чим параметри первинного конструктора відрізняються від полів?
- У якому порядку виконуються конструктор та ініціалізатор об’єкта?
- Хто і коли звільняє пам’ять, зайняту об’єктами?
Корисні посилання
- Класи: https://learn.microsoft.com/dotnet/csharp/fundamentals/types/classes
- Об’єкти: https://learn.microsoft.com/dotnet/csharp/fundamentals/object-oriented/objects
- Властивості: https://learn.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/properties
- Конструктори: https://learn.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/constructors
- Нове в C# 14: https://learn.microsoft.com/dotnet/csharp/whats-new/csharp-14
- Типи з можливістю null: https://learn.microsoft.com/dotnet/csharp/nullable-references