Українська
Підсумки
Висновки
Інкапсуляція приховує стан об’єкта й відкриває лише публічний контракт, завдяки чому клас гарантує свої інваріанти. Модифікатори доступу визначають області видимості: private – клас, internal – збірка, public – будь-який код, а варіанти з protected пов’язані з наслідуванням. Багатопроєктне рішення з бібліотекою класів використовує internal для прихованих допоміжних типів. Стан захищають властивості з обмеженим записом, методи-команди та захисні копії. Статичні члени належать класу: статичні поля спільні для всіх об’єктів, статичний конструктор виконується один раз, статичні класи групують допоміжні функції, а фабричні методи з закритими конструкторами дають зрозумілі способи створення об’єктів.
Питання для самоперевірки
- Що таке інкапсуляція? Що таке інваріант класу?
- Чому публічні поля вважають поганою практикою?
- Які модифікатори доступу існують у C#? Яка область доступу кожного?
- Який доступ мають члени класу та типи верхнього рівня за замовчуванням?
- Що таке збірка? Як модифікатор
internalпов’язаний зі збірками? - Як створити рішення з бібліотекою класів і консольним застосунком?
- Що таке захисна копія? Коли вона потрібна?
- Чим відрізняються
const,readonlyіstatic readonly? - Що таке статичне поле? Наведіть приклади його використання.
- Чому статичний метод не може звертатися до полів екземпляра?
- Коли виконується статичний конструктор?
- Що таке статичний клас? Для чого директива
using static? - Для чого використовують фабричні методи й закриті конструктори?
- Як організовують простори імен і файли проєкту?
- Чим небезпечний глобальний змінний стан?
Корисні посилання
- Модифікатори доступу: https://learn.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/access-modifiers
- Статичні класи та члени: https://learn.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/static-classes-and-static-class-members
- Статичні конструктори: https://learn.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/static-constructors
- Ключове слово
readonly: https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/readonly - Бібліотека класів у Visual Studio: https://learn.microsoft.com/dotnet/core/tutorials/library-with-visual-studio