Назад Уперед Зміст

Статичні елементи

Об'єктно-орієнтований стиль програмування коротко можна описати таким чином:

  1. Спочатку створіть класи - корисні правила для створення об'єктів.
  2. Далі створюйте об'єкти - екземпляри ціх класів і змушуйте їх виконувати потрібну Вам роботу.

Таким чином, в процесі виконання програми безпосередньо діють об'єкти. Однак в Деяких випадках природніше вважати, що дії виконуються самим класом. Хорошим прикладом є клас Math - все його методи викликаються від імені класу:
Console.WriteLine (Math.Sin (0.5) + Math.Cos (0.5))

Було б досить дивно для обчислення математичних функцій спочатку створювати об'єкт- «математику»:
Math m1 = new Math (); Math m2 = new Math ();
Console.WriteLine (m1.Sin (0.5) + m2.Cos (0.5))

Це означало б, що можна створювати кілька «математик». Але ж вони все Повинні діяти абсолютно однаково.

Аналогічно справа йде і з перемінними - бувають випадки, коли деякі дані природніше представлять НЕ як порцію інформації, що належить об'єкту, а класу в цілому.

В класі Math ця ситуація зустрічається при доступі до тригонометрическое Констан - Math.PI.

Елементи класу (змінні і методи), які співвідносяться ні З об'єктами, а з класом, називаються статичного. В описі статичних елементів використовується ключове слово static.

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

На відміну від статичних членів звичайні елементи класу називаються елементами примірників класу - методи примірників і змінні примірників. Змінні примірника описуються в класі і зберігаються в об'єктах класу.

Приклад

Клас Person моделює ситуацію, коли безліч людей мають у своєму розпорядженні деяким загальним запасом їжі та ділять його порівну.

Кількість їжі FoodQuantity і кількість людей PeopleCount - характеристики всієї сукупності людей. Тому вони описані як статичні змінні.

Метод Description описує стан всієї множини людей і також є статичним методом.

Статичні методи можуть використовувати тільки статичні змінні та інші статичні методи класу. Спроба використовувати в методі Description змінну Weight привела б до помилки компілятора.

В класі Program:

Результат:

Назад Уперед Зміст