>
2. Тіло класу, що містить перелік властивостей (поля даних) і перелік методів зазвичай задаються тільки своїми заголовками.
Приклад:
private
mas: array [1 .. 10] of TList ;//властивість
public
Constructor Create (aKey: string) ;//методи
***
еnd;
3. Програмна реалізація методів (код методу).
Приклад:
constructor TMas.Create (aKey: string);
var i: integer;
begin
for i: = +1 to 10 do mas [i]: = TList.Create (aKey),
end;
Методи, які не мають програмної реалізації, називаються абстрактними.
Клас, що має хоча б один абстрактний метод, називається абстрактним. Об'єкти-примірники такого класу створювати не можна.
В
3. Композиція класів.
Композиція виникає, коли один або кілька властивостей класу представляють із себе об'єктів яких або інших класів.
Механізм композиції дозволяє створювати складні з простіших об'єктів. Перевагою композиції є можливість використання раніше створеного коду. p> Для створення програми в котом використовується композиція треба:
В· При описі нового класу включити в набір його властивостей хоча б одне об'єктне властивість
В· При написанні нового об'єкта попередньо повинні бути оголошені входять до його підпорядкування об'єкти.
В· Використання методів вкладених об'єктів
Приклад:
private
mas: array [1 .. 10] of TList; p> Тут оголошується масив c об'єктної змінної mas лінійних списків, який відноситься класу TList. br/>
4. Контейнери.
Об'єкт, призначенням якого є зберігання об'єктів інших типів і управління ними, називають контейнером. Іноді вміст контейнерів називають послідовностями. p> Контейнерні класи - поширений прийом розробки класів, що використовує механізми композиції і наповнення для підключення деяких об'єктів до керуючого об'єкту-контейнера. p> Контейнерний клас містить у своєму визначенні кілька об'єктних полів і полів-покажчиків на об'єкти. Якщо контейнерний клас використовує механізм композиції, то тип і кількість керованих об'єктів жорстко визначені типом і кількістю об'єктних полів. Якщо він використовує механізм наповнення, то підключення реалізується через покажчики, отже, контейнер може управляти як об'єктами деякого базового, так і об'єктами всіх нащадків цього класу.
Контейнерні класи реалізують деякі типові структури, такі як, масив, стек або список, і типові операції над даними, які можуть бути записані в ці структури або прочитані з них.
Основна операція контейнерного класу - послідовна обробка об'єктів. Така обробка забезпечується 2 способами:
1. Базується на створенні спеціальної процедури перегляду всіх елементів контейнера. У цю процедуру як параметр передається ім'я функції або процедури, реалізує необхідної обробки елемента контейнера.
2. Реалізується через визначення ітератора або класу ітераторів, відповідного для даного виду контейнера.
Приклад контейнерного класу:
TContainer = class
private
Arrs: array [1 .. 100] of TFigure;// масив поліморфних покажчиків
// на графічні фігури;
count: integer;// поточне число об'єктів в контейнері
public
constructor Create;
function GetCount: integer;
function Add (aFig: TFigure; ai: integer): integer;
function Delete (ai: integer): integer;
function Search (aFig: TFigure): integer;
procedure ShowAll;
procedure MoveAll (dx, dy: integer);
procedure FreeAll;
end;
5.Опісаніе класів
У даному об'єктному програмі використовується 3 класу:
В· TItem
В· TList
В· TMas
Клас TItem зберігає елемент допоміжного лінійного списку. Має у своєму складі 2 закритих характеристики: Key - містить ключ, Next - адресу на наступний елемент. Опис методів класу:
Constructor Create (aNext: TItem; aKey: string) - Створення 1 елемента
function Getnext: TItem - дати адресу на слід. елемент
procedure SetNext (aNext: TItem) - зміна адреси
Function GetKey: string - Повернення ключа
Клас TList являє собою набір об'єктів класу TItem. Має у своєму складі 1 властивість - Head, який є заголовком лінійного списку.
Опис методів класу:
constructor Create (aKey: string) - Створення порожнього списку із заголовком
function AddFirst (aKey: string): Boolean - додавання в початок списку. Повертає true при успішному додаванні.
function AddLast (aKey: string): boolean - Додавання в кінець списку. Повертає true при успішному додаванні.
function...