Главная
Обратная связь
Дисциплины:
Архитектура (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)
|
Поля та методи. Присвоювання та порівняння об’єктів. Дані: поля та сталі
Поля є членами містять їх типів. Клас або структура можуть мати поля екземпляра або статичні поля, або поля обох типів. Поля примірника визначаються екземпляром типу. Якщо є клас T і поле примірника F, можна створити два об'єкти типу T і змінити значення поля F в кожному об'єкті, не змінюючи значення в іншому об'єкті. На противагу цьому, статичне поле відноситься до самого класу, і є загальним для всіх екземплярів цього класу. Зміни, виконані з примірника А, будуть негайно видно екземплярам В і С, якщо вони звертаються до поля. Як правило, використовуються поля тільки для змінних, що мають доступність private або protected. Дані, які клас відкриває для клієнтського коду, повинні надаватися через методи, властивості і індексатори. методами, властивостями і індексаторами Використовуючи ці конструкції для непрямого доступу до внутрішніх полях, можна захиститися від неприпустимих вхідних значень. Закрите поле, яке зберігає дані, представлені відкритим властивістю, називається резервним сховищем або резервним полем. Поля зазвичай зберігають дані, які повинні бути доступними кільком методам класу і повинні зберігатися довше, ніж час існування будь-якого окремого методу. Наприклад, у класі, що представляє календарну дату, може бути три цілочисельних поля: одне для місяця, одне для числа, одне для року. Змінні, які не використовуються поза області одного методу, повинні бути оголошені як локальні змінні всередині тіла самого методу.
Метод являє собою блок коду, який містить набір інструкцій. Програма ініціює виконання операторів, викликаючи метод і задаючи необхідні аргументи методу. У C # всі інструкції виконуються в контексті методу. Метод Main є точкою входу для кожного додатка C #, і викликається він середовищем CLR при запуску програми.
Методи. Параметри метода. Передача параметрів. Параметри значення, Параметри посилання, Вихідні параметри
Метод являє собою блок коду, який містить набір інструкцій. Програма ініціює виконання операторів, викликаючи метод і задаючи необхідні аргументи методу. У C # всі інструкції виконуються в контексті методу. Метод Main є точкою входу для кожного додатка C #, і викликається він середовищем CLR при запуску програми.
При виклику методу йому можна передати одне або кілька значень. Значення, що передається методу, називається аргументом. А змінна, яка отримує аргумент, називається формальним параметром, або просто параметром. Параметри оголошуються в дужках після імені методу. Синтаксис оголошення параметрів такий же, як і у змінних. А областю дії параметрів є тіло методу. За винятком особливих випадків передачі аргументів методу, параметри діють так само, як і будь-які інші змінні. У загальному випадку параметри можуть передаватися методом або за значенням, або за посиланням. Коли змінна передається по посиланню, що викликається метод отримує саму змінну, тому будь-які зміни, яким вона піддасться всередині методу, залишаться в силі після його завершення. Але якщо змінна передається за значенням, що викликається метод отримує копію цієї змінної, а це означає, що всі зміни в ній по завершенні методу будуть втрачені. Для складних типів даних передача за посиланням більш ефективна через великого обсягу даних, який доводиться копіювати при передачі за значенням.
Коли параметр передається за значенням, копія параметра проводиться. Таким чином, зміни, внесені до формальний параметр викликається функції не мають ніякого впливу на відповідного фактичного параметра. Наприклад:
void f(int n) { n++;}int main() { int x = 2; f(x); cout << x; } У цьому прикладі параметр F в передається за значенням. Тому, незважаючи на F збільшує свою формальних параметрів п, що не має ніякого впливу на фактичний параметр х. Вихідна значення програми є 2 (не 3).
Коли параметр передається по посиланню, концептуально, власне сама параметр передається (і тільки отримала нову назву - ім'я відповідного формального параметра). Таким чином, будь-які зміни, внесені до формального параметра, впливають на фактичний параметр. Наприклад:
void f(int &n) { n++;}int main() { int x = 2; f(x); cout << x; } У цьому прикладі, параметр F в передається по посиланню. Таким чином, віднесення до п в F насправді змінює змінну х, так Виведення цієї програми є 3.
|