
- •Практична робота. Середовище розробки додаткив с#. Базові класи. Клас String.
- •Методи классу String для робот из рядками
- •Варіанти індивідуальних завдань
- •Контрольні питання
- •Практична робота 1. Проектування. Класи. Конструктори класу. Статичниі елементів класу. Спадкоємство. Частина 1.Класи. Конструктори класу. Статичні елементи класу.
- •Теоретична частина
- •Приклад
- •Хід виконання роботи
- •Індивідуальні завдання
- •Контольні запитання
- •Частина 2. Спадкоємство.
- •Теоретична частина
- •Приклад класичного спадкоємства
- •Приклад спадкоємства включення - делегування
- •Контрольні питання
- •Практична робота 2. Використання системних інтерфейсів. Створення класів походних від стандартних інтерфейсів. Частина 1. Інтерфейс iCloneable.
- •Теоретична частина
- •Приклад
- •Контрольні питання
- •Частина 2. Інтерфейси iСomparable і iСomparer.
- •Теоретична частина
- •Приклад
- •Контрольні питання
- •Частина 3. Інтерфейси iEnumerable і iEnumerator.
- •Теоретична частина
- •Інтерфейс iEnumerable
- •Приклад
- •Реалізація класу -коллекция без реалізації інтерфейсу Iеnumerator
- •Контрольні питання
- •Практическая работа 3. Моделювання в конструюванні. Використання масивів для розроблених типів. Частина 1. Користувальницький індексатор.
- •Теоретическая часть
- •Отличия между свойствами и индексаторами
- •Интерфейсы и индексаторы
- •Частина 2. Перевантаження унарних та бінарних операцій.
- •Теоретическая часть
- •Пример на перегрузку унарного оператора
- •Пример на перегрузку true и false
- •Пример на перегрузку бинарного оператора
- •Пример на перегрузку явных и неявных преобразований
- •Практична робота 4. Моделювання в конструюванні. Створення та використання класу ArrayList для розроблених типів. Частина 1. Частина 1.Створення власної колекції.
- •Теоретична частина
Контольні запитання
1.Навіщо потріні конструктори.
2.Призначення статичного конструктора.
3.Що означає – перевантажений метод.
4.Основні принципи ООП.
5.Що таке –THIS, наведіть приклади його використання.
6.Базовий клас для усіх типів .Net.
7.Як можна викликати статичний метод.
8.Засоби інкапсуляції.
9.Відкритий інтерфейс.
10. Області видимості.
Частина 2. Спадкоємство.
Мета - Навчитися створювати класи, похідні від базового класу, створювати об'єкти похідного класу, викликати методи базового і похідного класів.
Завдання. Створити клас, похідний від базового класу, створеного в попередній лабораторній роботі.
Теоретична частина
Спадкоємство - це можливість створювати класи на базі вже існуючих класів. Спадкоємство дозволяє розширювати можливості базового класу, шляхом додавання нових полів і методів в похідному класе.
Спадкоємство - це один з трьох основних принципів об'єктно-орієнтованого програмування і завдання спадкоємства - забезпечити повторне використання коду.
Клас, який успадковується, називається базовим. Клас, який успадковує базовий клас, називається похідним.
Існує два основні види спадкоємства: класичне спадкоємство (відношення «бути» - is-a) і включення-делегування (відношення «мати» - has-a). Основна ідея класичного спадкоємства полягає в тому, що похідні класи повинні отримувати функціональність від базового класу-предка і доповнювати її новими можливостями.
У C# покажчик на базовий клас виглядає як двокрапка (:).
У С# базовий клас при спадкоємстві може бути вказаний тільки один клас. Множинне спадкоємство заборонено.
При спадкоємстві класу не указуються модифікатори доступу.
При оголошенні членів класу для елементів, які доступні похідним класам застосовується специфікатор доступу protected.
У ієрархії спадкоємства допускається, щоб базові і похідні класи мали свої власні конструктори. В цьому випадку при створенні об'єкту від успадкованого класу спочатку викликаються конструктори базових класів в порядку спадкоємства і тільки потім конструктор нащадка (фактично «зверху вниз”).
Для виклику конструктора базового класу використовується ключове слово base.
Якщо ключове слово base відсутнє при визначенні конструктора похідного класу, то викликається конструктор за умовчанням базоваго класу.
Використання ключового слова new при визначенні членів похідного класу означає свідоме приховування членів базового класу.
Посилальна змінна одного класу не може посилатися на об'єкт іншого класу. Проте з цього правила є одне виключення. Посилальній змінній базового класу можна привласнити посилання на об'єкт похідного класу, у цьому випадку через неї можна буде звернутися до тих членів похідного класу, які були успадковані від базового.
Іноді при розробці класу потрібно заборонити можливість спадкоємства від нього. Для цього використовується ключове слово sealed, яке указується при оголошенні класу. Даний механізм може знадобитися при розробці якогось службового класу. Наприклад, вже відомий нам клас Console бібліотеки .NET Framework оголошений з використанням sealed.