→ Пошук по сайту       Увійти / Зареєструватися
Знання Мова програмування C#

Класи та об'єкти

Поняття класу є фундаментальним в ООП і служить основою для створення об'єктів. В описі класу визначаються дані (тобто змінні) і код (тобто методи), який маніпулює цими даними. Об'єкти є екземплярами класу.

Методи і змінні, складові клас, називаються членами класу. При визначенні класу оголошуються дані, які він містить, і код, який маніпулює цими даними. Дані містяться в змінних екземпляра, які визначені класом, а код міститься в методах. У мові С # визначені кілька специфічних різновидів членів класу. До них відносяться: змінні екземпляра, статичні змінні, константи, методи, конструктори, деструктори, індексатори, події, оператори і властивості.

Ініціалізація змінних в об'єкті (як у примірнику класу) проводиться безпосередньо в конструкторі класу. У складі класу може бути визначено декілька конструкторів.

Класси

Синтаксис визначення класу:

 

class імя_класу
{
    тип_доступу тип імя_змінної1;
    тип_доступу тип імя_змінної2;
    ...
    тип_доступу повертаємий_тип
    імя_методу1 (список_параметрів)
        {Тіло_методу}
} 

де тип_доступу може приймати одне з наступних значень: public, private, protected, internal. Члени класу з типом доступу public є загальнодоступними (тобто доступні з будь-якої точки програми за межами даного класу), з типом доступу protected - всередині членів даного класу і його похідних, з типом доступу private - тільки для інших членів даного класу. Тип доступу internal застосовується для типів, доступних у межах однієї збірки.

Наведемо приклад опису класу:

class Animal
{
   public string Name;
   private int Weight;
   protected int Type;
   public int Animal (int W, int T, string N)
   {
          Weight = W;
          Type = T;
          Name = N;
   }
   public int GetWeight () 
   {
          return Weight;
   }
} 

Обєкт

Для створення об'єкта необхідно використовувати наступний синтаксис:

імя_класу імя_обєкту = new імя_класу (); 

При створенні об'єкта (тобто екземпляра класу) відбувається виклик відповідного конструктора класу.
Поняття конструктора і деструктора.

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

Конструктор існує для будь-якого класу, незалежно від того, визначено він в явному вигляді чи ні. Замовчування мова С # передбачено наявність конструктора, який присвоює нульові значення всім змінним примірники (для змінних типів-значень) та значення null (для змінних посилального типу). У випадку явного визначення конструктора класу конструктор за умовчанням не використовується.

Синтаксис опису конструктора:

імя_класу (список_параметрів)
     {Тіло_конструктора} 

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

Синтаксис опису деструктора:

~ Імя_класу () {тіло_деструктора} 

Наслідування

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

Синтаксис опису об'єкту:

class імя_классу: імя_батьківського_класу
{
         тіло_класу
} 

Приклад опису об'єкту:

class Predator: Animal
{
        private int Speed;
} 

Спадкування формує ієрархію класів на основі відношення часткового порядку ISA ("бути").

Ієрархія може бути побудована і для об'єктів. У цьому випадку вона має структуру, яка будується на основі відношення структурного входження ("частина-ціле"), при якому один об'єкт є частиною іншого.
Порядок виконання роботи:

  1. Розробити методи і властивості для кожного з визначених класів.
  2. Реалізувати програму на C # відповідно до варіанта виконання.

Варіанти завдань

Побудувати ієрархію класів відповідно до варіанта завдання:

  1.    Студент, викладач, персона, завідувач кафедрою
  2.    Службовець, персона, робітник, інженер
  3.    Робочий, кадри, інженер, адміністрація
  4.    Деталь, механізм, виріб, вузол
  5.    Організація, страхова компанія, нафтогазова компанія, завод
  6.    Журнал, книга, друковане видання, підручник
  7.    Тест, іспит, випускний іспит, випробування
  8.    Місце, область, місто, мегаполіс
  9.    Іграшка, продукт, товар, молочний продукт
  10.    Квитанція, накладна, документ, рахунок
  11.    Автомобіль, поїзд, транспортний засіб, експрес
  12.    Двигун, двигун внутрішнього згоряння, дизель, реактивний двигун
  13.    Республіка, монархія, королівство, держава
  14.    Ссавець, парнокопитне, птах, тварина
  15.    Корабель, пароплав, вітрильник, корвет
загрузка...
Сторінки, близькі за змістом