Конструктор за замовчуванням - студопедія
У С #, як втім, і в інших об'єктно-орієнтованих мовах програмування, можна оголосити кілька функцій з однаковими іменами. Функції повинні відрізнятися списком прийнятих параметрів. Список може відрізнятися або кількістю, або типом або порядком проходження параметрів. Тип значення, що повертається функції ролі не грає. Термін перевантаження відноситься до імені функції. При виклику функцій транслятор за списком параметрів визначає, яка саме функція серед однойменних, повинна бути викликана. Прикладом перевантаження функцій може служити визначення в класі декількох конструкторів.
Конструктор - це спеціальна функція класу, призначена для ініціалізації полів класу в момент створення об'єкту цього класу.
Ім'я конструктора завжди збігається з ім'ям класу.
Конструкторів в класі може бути декілька або жодного.
На конструктори накладаються наступні обмеження:
1. Конструктор не може мати значення, що повертається навіть void
2. Як наслідок 1 не можна використовувати оператор return
3. Конструктори не можна оголошувати віртуальними.
Конструктори, на відміну від C ++ в C # можна оголошувати зі специфікаціями public, private і protected. Конструктор зі специфікацією public автоматично (неявно) викликається на етапі компіляції при створенні екземпляра даного класу. Спроба викликати конструктор явно викличе помилку компіляції. Конструктори зі специфікацією private і protected можуть бути викликані тільки за допомогою інших конструкторів, оголошених до специфікації public. Розрізняють такі типи конструкторів:
1. Конструктор за замовчуванням
2. Конструктор з аргументами
Конструктор, оголошений без аргументів, називається конструктором за замовчуванням.
Якщо в класі програмістом не визначений конструктор за замовчуванням, то, за відсутності інших конструкторів, компілятор створює його сам. Конструктор за замовчуванням, створений компілятором, инициализирует все поля класу наступним чином - числовим значенням - нуль, булевих змінних - false, для рядків значення порожній посилання - null.
class CA // У класі СА немає явно оголошених конструкторів
Результат роботи програми:
У класі може бути оголошений лише один не статичний конструктор за замовчуванням, так як перевантажити його неможливо (список прийнятих параметрів порожній).
питання:
1. Які способи передачі параметрів методам визначені в C #?
2. Чим відрізняється передача параметрів методам за допомогою модифікатора ref від передачі параметрів методам за допомогою модифікатора out?
3. Чи можна за допомогою оператора return повернути з методу посилання на об'єкт?
4. Чи можна за допомогою оператора return повернути з методу масив?
5. Як організувати передачу методам змінного кількості параметрів?
6. Чим відрізняється звернення до статичних методів класу від звернення до не статичною методам?
7. До яких членам класу можуть звертатися статичні функції класу?
8. До яких членам класу можуть звертатися не статичні функції класу?
9. Що таке перевантаження функції?
10. Чи є функції, заголовок яких відрізняється тільки типом значення, що повертається, перевантаженими?
11. Як відрізнити конструктор класу від інших функцій класу?
12. Для чого використовуються конструктори?
13. У якому випадку компілятор сам створює конструктор за замовчуванням?
14. Скільки в класі може бути оголошено не статичних конструкторів за замовчуванням?