Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shporka EK.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.38 Mб
Скачать
  1. Конструктори об’єктів. Статичні конструктори. Фіналізатори.

Конструктор це метод, який призначений для ініціалізації стану

об'єкту

Для того, щоб була можливість створювати екземпляри класу із

інших класів необхідно декларувати конструктор як public

Ім'я конструктора має відповідати імені класу

Конструктор не може повертати значення

Конструктори можуть приймати параметри

Клас може мати декілька конструкторів ( можуть перевантажуватись)

Конструктор за замовчуванням

Якщо у класу не задано конструктор, то компілятор автоматично генерує неявний конструктор за замовчуванням, що не приймає жодних параметрів

Якщо у класу є хоча б один явний конструктор, то у такому разі конструктор за замовчуванням не генерується і у разі створення класу без параметрів генерується помилка.

Статичні конструктори

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

Клас може мати як статичний конструктор, так і конструктори екземпляру класу.

Статичні конструктори не викликаються створюваною програмою, вони викликаються автоматично системою виконання перед створенням екземпляру класу чи перед спробою доступу до будь-якого статичного члену класу.

Фіналізатори (деструктори)

Фіналізатори (деструктори) це методи. які виконують дії, необхідні для звільнення зайнятих ресурсів перед тим, як об'єкт класу буде знищено.

Для класу може бути створений лише один фіналізатор, який не приймає параметрів і не може мати модифікаторів доступу.

Має ім'я таке ж як у класу, проте перед ім'ям ставиться тільда (~).

Не може бути викликаний явно програмним кодом, його викликає система збору сміття у той момент, коли встановлено, що закінчилися звернення до об'єкту.

  1. Порівняння конструкторів і фіналізаторів.

Екземпляр:

Конструктор: Викликається один раз при кожному створенні нового об'єкту

Фіналізатор: Викликається один раз при вивільненні пам'яті кожним об'єктом

Клас:

Конструктор: Викликається лише один раз за весь час виконання програми, в залежності від того, яка подія відбудеться першою: чи буде створено екземпляр класу, чи буде звернення до статичного члену класу

Фіналізатор: Не існує на рівні класу

  1. Модифікатор readonly. Ключове слово this.

Поля класу можна позначати модифікатором readonly (тільки для читання)

На відміну від константи, поле “тільки для читання” може бути ініціалізоване у конструкторі, не обов’язково лише в момент декларації

Поля readonly можуть бути як статичними, так і належати до екземпляру класу

Приклад використання поля readonly

Ключове слово this означає екземпляр класу.

Може використовуватися лише в наступних блоках:

конструкторах екземпляру класу;

методах екземпляру класу;

аксцессорах властовостей екземпляру класу та індексаторах.

Не може використовуватися у статичних методах класу.

Основна ціль використання цього ключового слова – розрізняти імена параметрів методу і назви членів класу.

Приклад використання ключового слова this

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]