Ссылочные типы данных.Особенности работы с типами в TP. Явные преобразования типов. Эквивалентность типов

Страницы работы

Фрагмент текста работы

Значения – скалярные, строковые константы, изображения массива, записи, множества, объекта.

Не допускается использование типизированных констант при описании других констант или типов.

11. РАБОТА С ВНЕШНИМИ ПРОЦЕДУРАМИ. МОДУЛИ.

МОДУЛЬ – самостоятельно хранящаяся и компилирующаяся программная единица, представляющая собой совокупность программных ресурсов (константы, рпеременные, типы и подпрограммы) для использования другими модулями  и программами.

Все программные ресурсы модуля делятся на:

1) Объекты, непосредственно предназначенные для использования другими модулями  и программами. Пункту соответствует часть заголовка модуля INTERFACE

2) Внутренние объекты рабочего характера. Пункту соответствует часть заголовка модуля IMPLEMENTATION

Структура  модуля:

unit unitname;

interface

{может быть конструкция uses}

{описание видимых объектов}

implementation

{описание скрытых объектов}

begin

{операторы инициализации объектов модуля}

end.

Имя модуля = имя в его заголовке. Исходный текст модуля хранится в текстовом файле *.pas

Заголовок подпрограммы в INTERFACE должен полностью дублироваться в IMPLEMENTATION (за исключением списка параметров, он может быть опущен).

Собственные процедуры и ф-ции  Turbo Pascal хранятся в библиотеках среды *.tpl.

12. ОБЪЕКТОВЫЙ ТИП. ОСНОВНЫЕ ПОНЯТИЯ

Три важнейших принципах, придающих объектам новые свойства: инкапсуляция, наследование и полиморфизм.

ИНКАПСУЛЯЦИЯ есть объединение в единое целое данных и алгоритмов обработки этих данных. В рамках ООП данные называются ПОЛЯМИ объекта, а алгоритмы объектными МЕТОДАМИ.

НАСЛЕДОВАНИЕ есть свойство объектов порождать своих потомков. Объект потомок автоматически наследует от родителя все поля и методы, может дополнять объекты новыми полями и заменять (перекрывать) методы родителя или дополнять их.

ПОЛИМОРФИЗМ – это свойство родственных объектов (т. е. объектов, имеющих одного общего родителя) решать схожие по смыслу проблемы разными способами. В рамках ООП поведенческие свойства объекта определяются набором входящих в него методов. Для изменения метода необходимо ПЕРЕКРЫТЬ его в потомке, т. е. объявить в потомке одноименный метод и реализовать в нем нужные действия.

ОБЪЯВЛЕНИЕ ОБЪЕКТА:

Зарезервированное слово object служит для описания объекта. Описание объекта должно помещаться в разделе описания типов:

type

MyObject = object

{Поля объекта}

(Методы объекта)

_ end;

Если объект порождается от какого-либо родителя, имя родителя указывается в круглых скобках сразу за словом object:

type

MyDescendantObject=object(MyObject)

end;_

Действительно необходимыми являются три зарезервированных слова в ООП с Турбо Паскалем - object, constructor и virtual.

13. НАСЛЕДОВАНИЕ И ПЕРЕОПРЕДЕЛЕНИЕ В ОБЪЕКТОВЫХ ТИПАХ

НАСЛЕДОВАНИЕ есть свойство объектов порождать своих потомков. Объект потомок автоматически наследует от родителя все поля и методы, может дополнять объекты новыми полями и заменять (перекрывать) методы родителя или дополнять их.

ПЕРЕОПРЕДЕЛЕНИЕ МЕТОДА – возможность определить новые методы со старыми именами; метод подкласса имеет приоритет по сравнению с методом надкласса.

14. ВИРТУАЛЬНЫЕ МЕТОДЫ В ОБЪЕКТАХ

Концепция ВИРТУАЛЬНЫХ МЕТОДОВ, поддерживаемая этими и другими современными языками, появилась как средство обеспечить выполнение нужных методов при использовании полиморфных переменных, то есть, по сути, как попытка расширить возможности вызова методов для реализации части функциональности, обеспечиваемой механизмом обработки сообщений. Для того, чтобы определить виртуальный метод, необходимо указать после его заголовка в объектовом типе служебное слово virtual. При этом во всех потомках объектового типа одноименные (переопределяющие) методы должны также специфицироваться как виртуальные; кроме того, все они должны иметь точно такой же набор формальных параметров, что и самый первый виртуальный метод. Возвращаясь к нашему примеру, можно следующим образом определить типы Point и circle (несущественные для рассмотрения поля и методы заменены многоточиями):

type

Point = object

constructor Create  ( a,b:integer ); procedure SwitchOn; virtual;

procedure SwitchOff; virtual;

procedure Move  ( dx,dy:integer );

Circle = object  (Point)

constructor Create ( a,b,R:integer ); procedure SwitchOn; virtual; procedure SwitchOff; virtual-end;

15. КОНСТРУКТОРЫ И ДЕСТРУКТОРЫ

Конструкторы предназначены для создания конкретного экземпляра объекта, ведь объект это тип данных, т. е. "шаблон", по которому можно создать сколько угодно рабочих экземпляров данных объектного типа (подобных TGraphObj, например). Зарезервированное слово constructor, используется в заголовке

Похожие материалы

Информация о работе