Типи даних користувача

Однією з переваг об’єктів є те, що вони дають користувачу можливість створювати власні типи даних. Нехай нам необхідно працювати з об’єктами, що мають дві координати: 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; просмотров: 1682;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.011 сек.