- •Лекція 6: Теорія й методи об'єктно-орієнтованого аналізу, проектування й програмування План
- •1. Парадигми програмування
- •2. Історія об′єктно-орієнтованої парадигми
- •2. Поняття об'єкта
- •3. Зв'язок записів й об'єктів в dos-паскале
- •4. Поняття класу
- •5. Концепції Об’єктно-орієнтованого аналізу й проектування
- •7. Переваги ооп у порівнянні із процедурним програмуванням:
- •8. Методологія Об’єктно-орієнтованого програмування
- •7. Чисто Об’єктно-орієнтовані й гібридні мови
- •Проста об'єктна модель і об′єктно-посилаюча модель
2. Поняття об'єкта
Теоретично об'єкт - це модель існуючої або абстрактної сутності.
Наприклад, об'єкти "простий дріб", "трикутник", "студент", "тест", "комп'ютер".
Модель завжди буде вже свого прототипу за рахунок абстрагування - відкидання непотрібних характеристик й особливостей поводження.
Скажемо, для об'єкта "студент", швидше за все, неважливими виявляться властивості "улюблене блюдо" й "розмір ноги", зате властивість "улюблене блюдо" буде значимим для об'єкта "відвідувач кафе", а властивість "розмір ноги" - для об'єкта "покупець взуттєвого магазина".
Об'єкт в об′єктно-орієнтованому програмуванні (ООП) - це результат об'єднання даних з діями, виконуваними над цими даними.
Таке об'єднання називається інкапсуляцією.
Не потрібно забувати, що об'єкт - це тип даних.
Поле об'єкта - це його властивість, характеристика. Поле задається усередині об'єкта як змінна.
Наприклад, чисельник і знаменник дробу, номер заліковї студента, гіпотенуза прямокутного трикутника, обсяг вінчестера комп'ютера.
Метод об'єкта - це його внутрішня підпрограма (процедура або функція), що працює з полями об'єкта.
Звичайно для об'єкта задають наступні типи методів:
конструктори - методи створення об'єкта;
деструктор - метод, викликуваний при знищенні об'єкта
методи доступу - установлюють або повертають значення полів
методи розрахунку - розраховують значення полів або додаткових характеристик
методи виводу - виводять значення полів на екран, печатку й т.д.
і т.д.
Сучасний користувач зіштовхується з об'єктами на кожному кроці. Наприклад, шрифт у документі Word - це об'єкт, що має поля: розмір, кольори, гарнітура, накреслення й т.д. Комірка Excel - це об'єкт із полями: значення, тип значення, вирівнювання, кольори тла, кольори шрифту й т.д. Методи доступу, реалізовані в додатках Word й Excel, дозволяють вручну змінювати властивості шрифту й осередку.
Поле об'єкта саме може бути об'єктом. Наприклад, об'єкт "Студент" може мати поле "Паспортні дані", саме утримуючого поля "серія", "номер", "дата видачі", "організація, що видала паспорт" і т.д.
3. Зв'язок записів й об'єктів в dos-паскале
У мові програмування Паскаль об'єкти схожі на записі (record)
type
(* запис "студент"
містить три поля *)
Student = record
sFIO: string;
iCourse: byte;
sGroup: string;
end;
(* об'єкт "студент"
містить три поля й два методи *)
TStudent = object
fsFIO: string;
fiCourse: byte;
fsGroup: string;
procedure SetStudent (sFIO: string; iCourse: byte; sGroup: string);
procedure GetStudent (var sFIO: string; var iCourse: byte;
var sGroup: string);
end;
Процедури-методи об'єкта TStudent реалізуються так
procedure TStudent.SetStudent (sFIO: string; iCourse: byte; sGroup: string);
begin
fsFIO := sFIO;
fiCourse := iCourse;
fsGroup := sGroup;
end;
procedure TStudent.GetStudent (var sFIO: string; var iCourse: byte;
var sGroup: string);
begin
sFIO := fsFIO;
iCourse := fiCourse;
sGroup := fsGroup;
end;
Але запис - зовсім відкрита структура: ми прямо звертаємося до поля запису, щоб змінити його або одержати його значення:
plushkin.sFIO := 'Plushkin Ivan';
plushkin.iCourse := 1;
plushkin.sGroup := '20-103';
writeln (plushkin.sFIO,': ',plushkin.iCourse,' year, ',plushkin.sGroup);
У той же час із об'єктом нам цього робити не дозволено:
var
kirpichov: TStudent; // екземпляр об'єкта
sFIO, sGroup: string;
iCourse: byte; // змінні для запису значень полів
...
{ звертаємося до полів об'єкта - строго через методи }
kirpichov.SetStudent ('Kirpichov Alexey',2,'20-201');
kirpichov.GetStudent(sFIO, iCourse, sGroup);
writeln (sFIO,': ',iCourse,' year, ',sGroup);
