Информатика -продвинутый курс




ОСНОВЫ ОБЪЕКТНОГО ПРОГРАММИРОВАНИЯ В СИСТЕМЕ ТУРБО-ПАСКАЛЬ - часть 2


Деструктор - это специальный метод, освобождающий память «кучи» от динамических объектов. Он объявляется с использованием специально зарезервированного слова destructor.

Основными отличительными свойствами объекта являются

• инкапсуляция - объединение записей с процедурами и функциями, работающими с этими записями;

• наследование - задание объекта, затем использование его для построения иерархии порожденных объектов с наследованием доступа каждого из порожденных объектов к коду и данным предка;

• полиморфизм - задание одного имени действию, которое передается вверх и вниз по иерархии объектов с реализацией этого действия способом, соответствующим каждому объекту в иерархии.

Рассмотрим смысл каждого из перечисленных свойств на примере построения на экране дисплея точек разных цветов (звездного неба).

Инкапсуляция.

Основой решения задачи является задание положения (позиции) отдельной точки на экране, описываемого координатами Х и Y. Для задания координат подходит тип «запись»:

Pozition = record

X, Y : integer;

end;

Далее может быть необходимо задать значения координат (такая процедура носит название инициализации). Создадим соответствующую процедуру:

procedure Init(CoordX, CoordY : integer);

begin

X : =

CoordX;

Y : = CoordY;

end;

Затем потребуется знание фактических значений координат. Для этого вводим две функции:

function GetX : integer;

begin

GetX: = X;

end;

function GetY: integer;

begin

GetY: = Y;

end;

По нашему замыслу процедура Init и функции GetX и GetY должны работать только с полями записи Pozition.

Введение объектов позволяет зафиксировать это положение, объявив и поля, и действия над ними в единой конструкции:

Pozition = object

X, Y: integer;

procedure Init(CoordX, CoordY : integer);

function GetX : integer;

function GetY : integer;

end;

Процедура Init и функции GetX и GetY являются методами объекта Pozition.

Для инициализации экземпляра типа Pozition достаточно вызвать его метод, как если бы он был полем записи:




Содержание  Назад  Вперед