- •Процедуры и функции
- •Объявление процедур и функций без параметров
- •Определение процедуры, основные особенности работы
- •Определение функции, основные особенности работы
- •Области видимости процедур и функций
- •Глобальные и локальные переменные
- •Оформление исходного текста процедур и функций
- •Параметры-значения и особенности работы с ними
- •Параметры-переменные и особенности работы с ними
- •Параметры-константы и особенности работы с ними
- •Открытые параметры-массивы и особенности работы с ними
- •Бестиповые параметры и особенности работы с ними
- •Процедурный тип, определение, область применения
- •Явная и неявная рекурсия
- •Типизированные константы
- •Определение файла, общие процедуры и функции для работы с ними
- •Текстовые файлы, особенности,процедуры и функции для работы с ними
- •Типизированные файлы, особенности,процедуры и функции для работы с ними
- •Нетипизированные файлы, особенности,процедуры и функции для работы с ними
- •Модули. Структура модулей Паскаль
- •Особенности использования, видимость содержимого
- •Компилляция модуля(3 режима)
- •Стандартные модули Паскаль
- •Указатели
- •Основные понятия, типы указателей, объявление
- •Способы задания значений переменных
- •Основные процедуры работы с указателем
- •Работа с диманической памятью
- •Основные ошибки при работе с указателями
- •Объекты
- •Ооп, основные понятия и определения
- •Достоинства и недостатки
- •Объявление объектного типа, поля, методов
- •Области видимости в модели объектов Паскаль
- •Наследование
- •Полиморфизм, виртуальные методы
- •Использование экземпляров объекта
- •Динамическая память и деструкторы
Объекты
Ооп, основные понятия и определения
Объектно-ориентированное программирование – это методология программирования, которая основана на представлении программы в виде совокупности объектов, каждый из которых является реализацией определенного класса, а классы образуют иерархию на принципах наследуемости. В частности, программирование не основанное на иерархических отношениях, относится не к ООП, а к программированию на основе абстрактных типов данных. Можно сказать, что язык программирования является объектно- ориентированным тогда и только тогда, когда выполняются следующие условия:
• Имеется поддержка объектов в виде абстракции данных, имеющих интерфейсную часть в виде поименованных операций и защищенную область локальных данных.
• Объекты относятся к соответствующим типам (классам).
• Типы (классы) могут наследовать атрибуты от супертипов (суперклассов).
К базовым принципам объектно-ориентированного стиля программирования относятся:
пакетирование или инкапсуляция ;
наследование ;
полиморфизм ;
передача сообщений.
Достоинства и недостатки
Достоинства ООП:
спользование более естественных с точки зрения обычной повседневной практики понятий, простота введения новых понятий;
упрощение разработки многократно используемых компонент приложений;
некоторое сокращение размера программ за счет того, что повторяющиеся (наследуемые) свойства и действия можно не описывать многократно; кроме того, использование динамических объектов позволяет более эффективно распределять оперативную память;
возможность создания библиотеки классов; в частности, библиотека визуальных компонент Delphi и является примером такой библиотеки;
сравнительно простая возможность внесения изменений в программу без изменения уже написанных частей, а в ряде случаев и без перекомпиляции этих написанных и уже скомпилированных частей, используя свойства наследования и полиморфизма;
возможность написания подпрограмм с различными наборами формальных параметров, но имеющих одно и то же имя;
более четкая локализация свойств и поведения объектов конкретного класса в одном месте (используется свойство инкапсуляции), позволяющая проще разбираться со структурой программы, отлаживать ее, находить ошибки;
возможность разделения доступа к различным объектам программы и т. д.
Недостатки ООП
Умеренное быстродействие программы
Эффективна для больших программ
Объявление объектного типа, поля, методов
Переменные объектных типов (экземпляры объектов) с точки зрения Turbo Pascal представляют собой структурированный (комбинированный) тип данных, являющихся совокупностью информационных полей (переменных любого типа) и методов (процедур и функций). Объектные типы описы-ваются в разделе Type программы с использованием зарезервированного (ключевого) слова object:
Type
<имя объектного типа> = object
<информационные поля> объекта (переменные)>
<методы объекта (заголовки процедур и функций)>
end;
Например, опишем объект, который будет представлять собой позицию на графическом экране. Нам понадобится объявить два поля (X и Y-координаты точки) и несколько методов: для инициализации объекта, получения его координат, уничтожения и т. п.
Type
TLocation = object
X,Y : Word; {Координаты позиции на экране}
Procedure Init(InitX, InitY : Integer);
{Инициализация объекта}
Function GetX : Word; {Возвращает координату Х}
Function GetY : Word; {Возвращает координату Y}
Procedure GetCoords(Var CoordX, CoordY : Word);
{Возвращает обе координаты}
Procedure Done; {Уничтожает объект}
End;
Как видно из примера, поля объекта описываются таким же образом, что и поля записи, а для описания методов объекта используются только заголовки процедур и функций. Само собой разумеется, что такой объект никому не нужен, поскольку не реализована его функциональность (то есть - не описаны тела процедур и функций). Тела методов всех объектов, объявленных в программе, описываются в разделе реализации процедур и функций программы (в любом месте и в любой последовательности, но обяза-тельно ниже "своего" объекта). Синтаксически реализация метода выглядит так же, как и реализация "обычной" процедуры или функции за одним исключением: перед именем метода через точку необходимо указать имя объекта, которому он принадлежит:
Procedure <Имя объекта>.<Имя метода>(<Формальные параметры>);
<Раздел локальных описаний метода (процедуры)>
begin
<Операторная часть метода (тело процедуры)<
end;
