- •Некоторые особенности языка TurboPascal
- •Расширения базового синтаксиса
- •Расширения типов данных
- •Объявления переменных
- •Типизированные константы
- •Выражения и операции
- •Операторы
- •Процедуры и функции
- •Модульное программирование в TurboPascal
- •Общие понятия о модулях
- •Структура модуля
- •Заголовок модуля
- •Раздел интерфейса
- •Раздел реализации
- •Раздел инициализации
- •Описание подключаемых модулей (Uses)
- •Локализация (видимость) имен
- •Компиляция и компоновка модулей
- •Пример программы с модулем
- •Библиотеки модулей
- •Стандартные модули TurboPascal
- •Перечень стандартных модулей
- •Ввод-вывод в TurboPascal
- •Понятие об объектно-ориентированном программировании
- •Концепция объектно-ориентированного программирования
- •Синтаксис объектов в TurboPascal
- •Использование объектов в программе
Использование объектов в программе
Чтобы использовать объект в программе, нужно объявить переменную объектного типа. При этом доступ к экземпляру объекта будет осуществляться через его имя, а доступ к свойствам и методам – через квалификатор, состоящий из имени экземпляра объекта (переменной объектного типа), точки и имени свойства или метода (наподобие доступа к полям записи).
Можно также описать тип указателя на объектный тип, включить в объект свойство (или несколько свойств) такого же типа и описать несколько переменных-указателей соответствующего типа. Тогда можно будет создавать и уничтожать безымянные экземпляры объектов в динамической памяти и создавать динамические цепочки объектов. Для создания и уничтожения безымянных экземпляров объектов в динамической памяти используются процедуры New и Dispose, которым в качестве параметра нужно задать указатель на объект нужного типа. Сколько бы ни было создано экземпляров объектов одного и того же типа, их методы (программный код) хранятся в программе в единственном экземпляре и выполняются для любого из экземпляров объектов.
Обращение к безымянному экземпляру объекта производится так же, как обращение к безымянной записи – через имя указателя с квалификатором указания.
Перед использованием объектов с виртуальными методами необходимо выполнить один из его конструкторов. При этом экземпляр объекта будет связан с правильным вариантом виртуального метода. Для создания безымянных экземпляров объектов с виртуальными методами процедура New расширена таким образом, что после имени указателя, к которому будет привязан вновь созданный экземпляр, можно через запятую указать имя одного из конструкторов с фактическими параметрами этого конструктора (как при вызове процедуры).
Совместимость переменных (именованных и безымянных) объектного типа по присваиванию:
оба экземпляра объекта – одного типа;
объект-потомок присваивается объекту-предку, при этом копируются только свойства, присутствующие в обоих экземплярах.
Совместимость указателей на объектные типы по присваиванию:
оба указателя одного типа;
значение указателя на объект-потомок присваивается указателю, на объект-предок.