Программирование в среде Турбо Паскаль (Поляков, Круглов) - страница 47

В программе объекты описываются почти так же, как записи:

TYPE

DataWithMethods = OBJECT

Поле данных 1: его Тип;

Поле данных 2: его Тип;

...

Метод 1;

Метод 2;

Метод 3;

...

END;

Список полей и методов должен начинаться словом OBJECT и заканчиваться END (все об объектах читайте в гл. 13 «Объектно-ориентированное программирование»).

Таким образом, объект — это замкнутый мир данных и средств их обработки. Методы, реализуемые как процедуры и функции, имеют смысл и могут применяться только к полям данных этого же объекта. В то же время объекты привносят новые подходы к построению программ. Вводится такое понятие, как наследование признаков объектов. Это значит, что можно построить ряд все более и более сложных объектов, каждый из которых наследует свойства (данные и методы их обработки) предшественника и является его развитием. А объявив в программе такой ряд объектов, можно будет построить процедуры, которые смогут работать (запускать методы) с любым объектом этого ряда. (Возможность использовать одну процедуру для целого ряда взаимосвязанных через наследование объектов называется полиморфизмом.)

Язык Паскаль традиционно считается хорошим инструментом структурного программирования. Турбо Паскаль дает возможность

- 73 -

использовать другой подход к написанию программ — объектно-ориентированный. И если в первом случае стоит задача разделить алгоритм решения на отдельные процедуры и функции, то во втором — представить задачу как совокупность взаимодействующих объектов, выстраивая при этом ряды объектов — от низшего уровня данных к более высоким — согласно принципу наследования. И если вдруг изменится нижний уровень представления объекта, то достаточно будет изменить только его: все изменения автоматически передадутся по цепочке наследования. Если же, наоборот, понадобится еще больше усложнить объект, то достаточно будет просто продолжить ряд наследования. А процедуры (по свойству полиморфизма) останутся теми же.

Последним среди сложных типов Турбо Паскаля является ссылочный тип. В разд. 4.1.6 рассматривался тип Pointer — адресный тип. Его значения — это указатели на какую-либо ячейку рабочей памяти ПЭВМ. Причем не оговаривается, какое значение и какого типа в этой ячейке может содержаться — оно может быть каким угодно. Но известно, что структуры данных, занимающие более одной ячейки памяти, располагаются последовательно: в виде сплошной цепочки значений. Поэтому, чтобы просто адрес можно было назвать адресом какой-либо структуры данных, надо, кроме адреса первой ячейки структуры, знать еще ее тип и размер. Ссылочный тип — это тот же адресный тип, но «знающий» размер и структуру того куска памяти, на который будет организован указатель. Такие «знающие» указатели называются ссылками. Чтобы описать ссылочный тип, мы должны указать имя базового типа, т.е. тип той структуры (а именно он определяет размер и расположение данных), на которую будет указывать ссылка, и поставить перед ним знак «^», например: