Типи даних користувача
Однією з переваг об’єктів є те, що вони дають користувачу можливість створювати власні типи даних. Нехай нам необхідно працювати з об’єктами, що мають дві координати: x і y. Нам хотілося б здійснювати звичайні арифметичні операції над такими об’єктами, наприклад:
position1=position2+origin
де змінні position1, position2, origin являють собою набори з двох координат. Описавши клас, що включає в себе пару координат, і оголосивши об’єкти цього класу з іменами position1, position2, origin, ми фактично створимо новий тип даних.
Поліморфізм і перезавантаження
Зверніть увагу на те, що операції присвоювання = і додавання + для типу position повинні виконувати дії, відмінні від тих, які вони виконують для об’єктів стандартного типу, наприклад, int. Об’єкти position1 та інші не є стандартними, оскільки визначені користувачем як належні класу position. Як же оператори = і + розпізнають, які дії необхідно здійснити з операндами? Відповідь на це питання полягає в тому, що ми самі можемо задати ці дії, зробивши потрібні оператори методами класу position.
Використання операцій і функцій різним чином залежно від того, з якими типами величин вони працюють, називається поліморфізмом. Коли існуюча операція, наприклад, + чи =, здобуває можливість здійснювати дії над операндами нового типу, кажуть, що така операція є перезавантаженою. Перезавантаження являє собою окремий випадок поліморфізму і є важливим інструментом ООП.
Підсумок
ООП є способом організації програми. основна увага при його вивченні приділяється організації програми, а не питанням написання коду. Головним компонентом об’єктно-орієнтованої програми є об’єкт, що містить дані і функції для їх обробки. Клас є формою чи зразком для багатьох схожих між собою об’єктів.
Механізм успадковування дозволяє створювати нові класи на основі існуючих класів, не вносячи в них зміни. Породжений клас успадковує всі дані і методи базового класу, але має також свої власні. Успадковування робить можливим повторне використання коду, тобто включення раз створеного класу в будь-які інші програми.
Питання по темі
1. Мови Pascal, Basic i C є ___________ мовами, а С++ _________ мовою
2. В якості зразка по відношенню до об’єкту виступає:
а) метод
б) клас
в) операція
г) значення
3. Двома основними компонентами об’єкту є ____________ і функції, які з ними працюють
4. Функцію, що входить до складу класу, називають
а) функція-член класу
б) оператор класу
в) функція класу
г) метод класу
5. Захист даних від несанкціонованого доступу іншими функціями називається
6. Які з перелічених далі причин є головними для використання об’єктно-орієнтованих мов?
а) можливість створення власних типів даних
б) простота операторів об’єктно-орієнтованих мов порівняно з процедурними мовами
в) наявність засобів для автокорекції помилок в об’єктно-орієнтованих мовах
г) об’єктно-орієнтовані програми легше концептуалізуються
7. __________ відображають об’єкти реального світу точніше, ніж функції
8. Об’єднання даних і функцій називається
9. Можливість виконання оператором чи функцією різних дій залежно від типу операндів називається
10. Операція, що виконує задані дії над користувацьким типом даних, називається:
а) поліморфічною
б) інкапсульованою
в) класифікованою
г) перезавантаженою
Лекція 3
Тема 2 Об’єктно-орієнтоване програмування в Pascal
Означення об’єкта, опис типу і екземпляра об’єкта
Поля об’єкта
Методи
Ініціалізація полів об’єкта
Визначення методів
Область дії методів і параметр Self
Підсумок
Питання по темі
Означення об’єкта, опис типу і екземпляра об’єкта
Об’єкт у розумінні мови Pascal – це така структура, компонентами якої є взаємозв’язані дані різних типів і процедури та функції, що ці дані використовують. Компоненти-дані називаються полями об’єкта, а компоненти-процедури і функції називаються методами. Для позначення типу «об’єкт» в мові є службове слово OBJECT. Тип об’єкту описується способом, схожим на задання типу «запис».
TYPE
ІмяОбєкту=OBJECT
ПоляДаних;
Заголовки Методів;
END;
Конкретну змінну, оголошену типом ІмяОбєкту, прийнято називати екземпляром цього типу.
Розглянемо як приклад, об’єкт типу «студент». Нехай передбачені поля об’єкту: Name - ім’я студента, Date – дата народження, Rate – розмір стипендії.
З використанням типу «запис» це виглядало б так:
TStudent=RECORD
Name:String[30];
Date:String[10];
Rate:Real;
END;
Відповідно з використанням типу «об’єкт»
TStudent=OBJECT
Name:String[30];
Date:String[10];
Rate:Real;
END;
Змінну типу об’єкту (екземпляр об’єкту) описують так, як в Pascal описується будь-яка статична чи динамічна змінна, що вказує на розміщену в динамічній пам’яті змінну
Var
Student:TStudent;
або так
TYPE
PStudent=^TStudent;
VAR
Stat_st:TStudent;
Dyn_St:PStudent;
Перед використанням змінної Dyn_Stнеобхідно виділити для неї пам’ять з допомогою функції New.
Поля об’єкта
До поля об’єкта можна звернутися як до поля звичайного запису, за допомогою оператора WITHабо використовуючи префікс з іменем об’єкта. Наприклад:
Student.Rate:=800;
Дата добавления: 2015-08-26; просмотров: 1734;