Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по паскалю.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
67.39 Кб
Скачать
  1. Объекты

  1. Ооп, основные понятия и определения

Объектно-ориентированное программирование – это методология программирования, которая основана на представлении программы в виде совокупности объектов, каждый из которых является реализацией определенного класса, а классы образуют иерархию на принципах наследуемости. В частности, программирование не основанное на иерархических отношениях, относится не к ООП, а к программированию на основе абстрактных типов данных. Можно сказать, что язык программирования является объектно- ориентированным тогда и только тогда, когда выполняются следующие условия:

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

• Объекты относятся к соответствующим типам (классам).

• Типы (классы) могут наследовать атрибуты от супертипов (суперклассов).

К базовым принципам объектно-ориентированного стиля программирования относятся:

пакетирование или инкапсуляция ;

наследование ;

полиморфизм ;

передача сообщений.

  1. Достоинства и недостатки

Достоинства ООП:

  1. спользование более естественных с точки зрения обычной повседневной практики понятий, простота введения новых понятий;

  2. упрощение разработки многократно используемых компонент приложений;

  3. некоторое сокращение размера программ за счет того, что повторяющиеся (наследуемые) свойства и действия можно не описывать многократно; кроме того, использование динамических объектов позволяет более эффективно распределять оперативную память;

  4. возможность создания библиотеки классов; в частности, библиотека визуальных компонент Delphi и является примером такой библиотеки;

  5. сравнительно простая возможность внесения изменений в программу без изменения уже написанных частей, а в ряде случаев и без перекомпиляции этих написанных и уже скомпилированных частей, используя свойства наследования и полиморфизма;

  6. возможность написания подпрограмм с различными наборами формальных параметров, но имеющих одно и то же имя;

  7. более четкая локализация свойств и поведения объектов конкретного класса в одном месте (используется свойство инкапсуляции), позволяющая проще разбираться со структурой программы, отлаживать ее, находить ошибки;

  8. возможность разделения доступа к различным объектам программы и т. д.

Недостатки ООП

  1. Умеренное быстродействие программы

  2. Эффективна для больших программ

  1. Объявление объектного типа, поля, методов

Переменные объектных типов (экземпляры объектов) с точки зрения 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;