- •Базові поняття об’єктно-орієнтованого програмування.
- •Технології та інструментальні засоби проектування програмних систем.
- •Оголошення та структура класу.
- •Потокове введення – виведення.
- •Елементи класу.
- •Конструктори та деструктори.
- •Об’єкти класу.
- •Перевантаження операцій.
- •Види класів.
- •Одинарне наслідування класів.
- •Множинне наслідування класів.
- •Поліморфізм віртуальних функцій.
- •Параметризовані функції та класи.
- •Перетворення типів.
- •Керування виключними станами.
- •Програмування для Windows.
Елементи класу.
Об'єктно-орієнтоване програмування і проектування побудоване на класах. Будь-яку програмну систему, побудовану в об'єктному стилі, можна розглядати як сукупність класів, можливо, об'єднаних в проекти, простори імен, рішення, як це робиться при програмуванні у VisualStudio.
Клас - це шаблон, який визначає форму об'єкту. Він задає як дані, так і код, який оперує цими даними.
Об'єкти - це екземпляри класу.
Клас складається із:
полів;
властивостей;
методів;
подій;
конструкторів;
деструкторів;
делегатів.
Елементи класу називаються членами класу.
Клас оголошується за допомогою ключового слова class. Синтаксис має наступний вигляд:
Приклад 1. Синтаксис оголошення класу.
1: class ім’я_класу
2: {
3: //Оголошення полів
4: доступ тип імя_змінної;
5: доступ тип імя_змінної;
6:
7: //Оголошення методів
8: доступ тип_повернення імя_метода(параметри)
9: {
10: тіло метода;
11: }
12:
13: доступ тип_повернення імя_метода(параметри)
14: {
15: тіло метода;
16: }
17: }
Конструктори та деструктори.
Конструктори
Класи, у яких оголошено метод-констуктор, будуть викликати цей метод при кожному створення нового об'єкта, так що це може виявитися корисним, для того, щоб ініціалізувати стан об'єкту перед його використанням. Конструктор, який раніше збігався з назвою класу, тепер необхідно оголошувати як __construct (), що дозволить легше переміщати класи в ієрархіях. Конструктори в класах-батьків не викликаються автоматично. Щоб викликати конструктор, оголошений в батьківському класі, слід звернутися до методу parent::__construct().
<?php class BaseClass { function __construct() { print "Конструктор класу BaseClass\n"; }} class SubClass extends BaseClass { function __construct() { parent::__construct(); print "Конструктор класу SubClass\n"; }}$obj = new BaseClass(); $obj = new SubClass();?>
Деструктори
Перед звільненням пам'яті, займаної об'єктом, викликається метод __destruct (), яка не приймає параметрів. Він працює як дзеркальне відображення __construct (). Цей метод корисний для виконання процедури очищення.
<?php class MyDestructableClass { function __construct() { print "Конструктор\n"; $this->name = "MyDestructableClass"; } function __destruct() { print "Знищується " . $this->name . "\n"; }}$obj = new MyDestructableClass();?>
Об’єкти класу.
Об’єкти класу
интаксис визначення класу:
class імя_класу
{
тип_доступу тип імя_змінної1;
тип_доступу тип імя_змінної2;
...
тип_доступу повертаємий_тип
імя_методу1 (список_параметрів)
{Тіло_методу}
}
де тип_доступу може приймати одне з наступних значень: public, private, protected, internal. Члени класу з типом доступу public є загальнодоступними (тобто доступні з будь-якої точки програми за межами даного класу), з типом доступу protected - всередині членів даного класу і його похідних, з типом доступу private - тільки для інших членів даного класу. Тип доступу internal застосовується для типів, доступних у межах однієї збірки.
Обєкт
Для створення об'єкта необхідно використовувати наступний синтаксис:
імя_класу імя_обєкту = new імя_класу ();
При створенні об'єкта (тобто екземпляра класу) відбувається виклик відповідного конструктора класу. Поняття конструктора і деструктора.
Під конструктором класу будемо розуміти метод для ініціалізації об'єкту при його створенні. Конструктор має те ж ім'я, що і його клас. У конструкторах тип значення не вказується явно. Конструктори використовуються для присвоювання початкових значень змінним примірника, певним класом, і для виконання будь-яких інших процедур ініціалізації, необхідних для створення об'єкта.
Конструктор існує для будь-якого класу, незалежно від того, визначено він в явному вигляді чи ні. Замовчування мова С # передбачено наявність конструктора, який присвоює нульові значення всім змінним примірники (для змінних типів-значень) та значення null (для змінних посилального типу). У випадку явного визначення конструктора класу конструктор за умовчанням не використовується.