Средства объектно-ориентированного программирования в Паскале. Объекты в Турбо-Паскале
Объект — это структура данных, содержащая поля данных (аналогично типу гесогй — запись) различных типов и заголовки методов. Методы — это процедуры и/или функции, объявленные и действующие внутри объекта. Пример: Ьуре Рол-П-Ь = оЪ^есЬ Х, У: 1п-Ьедег; У18л_Ые: Ьоо1еап; ргосейиге Сгеа" Ье (а, Ъ: л_п1: едег); ргосейиге 5мл_1: сЪ0п; ргосейиге 5мл_{: сЪ01: 1:; ргосе^иге Мс^е (< 3х, с1у: л_п1: едег); ' ^ипс-Ыоп Се-ЬХ: 1п1: едег; ^ипсЪ±оп СеЪУ: л.п1: едег; Епс1; Наследование — определение нового объекта с использованием свойств ранее объявленных объектов, дополняя или изменяя их. Пример: Ьуре ЗЪаг = окдес1: (Рол_п1:) ргосейиге Сгеа" Ье (а, Ъ: л_п1: едег); ргосейиге МоVе (< 3х, с1у: л_п1: едег); Еп < 1; Связь между методами и вызывающими их процедурами может устанавливаться во время трансляции (раннее связывание) или во время выполнения программы (позднее связывание). Такие методы должны быть виртуальными (ключевое слово — «У1г1иа1»). Инициализация экземпляра объекта, имеющего виртуальный метод, должна выполняться с помощью специального метода — конструктора. Заголовок конструктора начинается словом сопз^гис^ог вместо ргосес! иге. Действия, обратные действиям конструктора, выполняет специальный метод — деструктор (заголовок — «йе81гис1ог»). Слово ргллгаъ позволяет ограничить доступ к полям объекта, оставляя возможность использовать их лишь через методы этого объекта. Переменные объектного типа могут быть динамическими, то есть размещаться в памяти только на время их использования. Для работы с динамическими объектами используется расширенный синтаксис процедур Ыем и Эгзрозе, содержащих в качестве второго параметра вызов конструктора или деструктора: Ыем (Р, СопсЬгисЬог), Э1зрозе (Р, ОезЪгисЪог). Эквивалентные операторы: Ыем (Р); РА.Сопз1гис1ог; И РА.01зрозе; 01зрозе(Р);. Полиморфизм — следствие наследования, возможность использования одного имени для различных действий в зависимости от типа объекта. Тип «объект» в Паскале тесно связан с модульным программированием. В этой связи вспомним основные понятия модуля. Модуль в Паскале — это самостоятельная программная единица, объединяющая совокупность программных ресурсов, предназначенных для использования другими модулями и программами. Структура модуля представлена ниже: ип±Ъ < ипИЫаше>; 1п1ег^асе Описания видимых объектов 1шр1етеп1а1: 10п Описания скрытых объектов Вед±п Операторы инициализации объектов модуля Епс!. Каждый модуль компилируется отдельно с созданием файла с расширением.1ри. Доступ к интерфейсным объектам модуля осуществляется спецификацией
|