Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)


 

 

 

 



Ключове слово this. Конструктори. Властивості



Конструктор инициализирует об'єкт при його створенні. У конструктора таке ж ім'я, як і у його класу, а з точки зору синтаксису він подібний методу. Але у конструкторів немає повертається типу, що вказується явно. Нижче наведена загальна форма конструктора:
доступ ім'я_класу (спісок_параметров) {// Тіло конструктора}
Як правило, конструктор використовується для завдання початкових значень змінних екземпляра, визначених у класі, або ж для виконання будь-яких інших настановних процедур, які потрібні для створення повністю сформованого об'єкта. Крім того, доступ зазвичай являє собою модифікатор доступу типу public, оскільки конструктори часто викликаються в класі. А спісок_параметров може бути як порожнім, так і складається з одного або більше вказуються параметрів.
Кожен клас C # забезпечується конструктором за замовчуванням, який при необхідності може бути перевизначений. За визначенням такий конструктор ніколи не приймає аргументів. Після розміщення нового об'єкта в пам'яті конструктор за замовчуванням гарантує установку всіх полів у відповідні стандартні значення. Якщо ви не задоволені такими присвоювання за замовчуванням, можете перевизначити конструктор за замовчуванням у відповідності зі своїми потребами.
Конструктор також може приймати один або декілька параметрів. У конструктор параметри вводяться таким же чином, як і в метод. Для цього достатньо оголосити їх в дужках після імені конструктора.

У мові C # є ключове слово this, яке забезпечує доступ до поточного екземпляру класу. Одне з можливих застосувань ключового слова this полягає в тому, щоб дозволяти неоднозначність контексту, що може виникнути, коли вхідний параметр названий так само, як поле даних даного типу. Зрозуміло, в ідеалі необхідно просто дотримуватися угоди про іменування, яка не може призвести до такої неоднозначності.

Ще одним різновидом члена класу є властивість. Як правило, властивість поєднує в собі поле з методами доступу до нього.
Властивості дуже схожі на індексатори. Зокрема, властивість складається з імені та аксессор get і set. Аксессор служать для отримання і установки значення змінної. Головна перевага властивості полягає в тому, що його ім'я може бути використано у виразах і операторах присвоювання аналогічно імені звичайної змінної, але насправді при зверненні до властивості по імені автоматично викликаються його аксессор get і set. Аналогічним чином використовуються аксессор get і set індексатора.
Нижче наведена загальна форма властивості:
тип ім'я {
get { // Код аксессор для читання з поля }
set { // Код аксессор для запису в полі }}
де тип позначає конкретний тип властивості, наприклад int, а ім'я - присваиваемое властивості ім'я. Як тільки властивість буде визначено, будь-яке звернення до властивості по імені призведе до автоматичного викликом відповідного аксессор. Крім того, аксессор set приймає неявний параметр value, який містить значення, що привласнюється властивості. Слід, однак, мати на увазі, що властивості не визначають місце в пам'яті для зберігання полів, а лише управляють доступом до полів. Це означає, що саме властивість не надає поле, і тому поле повинно бути визначено незалежно від властивості.

Починаючи з версії C # 3.0, з'явилася можливість для реалізації дуже простих властивостей, не вдаючись до явного визначення змінної, якою управляє властивість. Замість цього базову змінну для властивості автоматично надає компілятор. Така властивість називається автоматично реалізованим і приймає таку загальну форму:
тип ім'я {get; set; }
де тип позначає конкретний тип властивості, а ім'я - присваиваемое властивості ім'я. Зверніть увагу на те, що після позначень аксессор get і set відразу ж слід крапка з комою, а тіло у них відсутня. Такий синтаксис наказує компілятору створити автоматично змінну, іноді ще звану підтримуючим полем, для зберігання значення. Така змінна недоступна безпосередньо і не має імені. Але в той же час вона може бути доступна через властивість.
Незважаючи на очевидні зручності автоматично реалізуються властивостей, їх застосування обмежується в основному тими ситуаціями, в яких не потрібно управління установкою або отриманням значень з підтримують полів.


 



Просмотров 635

Эта страница нарушает авторские права




allrefrs.su - 2025 год. Все права принадлежат их авторам!