вторник, 11 сентября 2012 г.

ООП на Pascal



Объектно-ориентированная методология разработки программных комплексов

Объектно-ориентированная концепция создания программ зародилась примерно в одно и то же время со структурной методологией (примерно в середине 60-х годов) и имела аналогичную цель - обеспечение дисциплины программирования при разработке больших программных комплексов. По определению известного программиста Гради Буча "объектно-ориентированное программирование (ООП) - это методология программирования, которая основана на представлении программы в виде совокупности объектов, каждый из которых является реализацией определенного класса (типа особого вида), а классы образуют иерархию на принципах наследуемости". ООП базируется на трех основных понятиях: инкапсуляция, наследование и полиморфизм.
Определений понятия объект существует достаточно много. С точки зрения Гради Буча: "Объект - осязаемая сущность, которая четко проявляет свое поведение". Не лишен скрытого смысла студенческий ответ: "Объект - это все". 
Инкапсуляция - это объединение в рамках единого целого (объекта) данных (характеристик объекта) и действий (процедур и функций) по обработке этих данных. В терминах ООП данные называются полями, а процедуры и функции - методами. То есть можно сказать, что объект состоит из полей и методов. Инкапсуляция позволяет в максимальной степени изолировать объект от внешнего окружения. Объект (а точнее - экземпляр объекта) сам "знает" о себе все и "умеет" манипулировать этими знаниями. При этом обмен данными между объектом и программой (или другим объектом) сведен к минимуму.
Наследование - это свойство объектов порождать своих потомков. По Гради Бучу "наследование - это такое отношение между объектами, когда один объект повторяет структуру и поведение другого". Объект-потомок автоматически наследует от родителя все поля и методы, может быть дополнен новыми полями, а методы предка могут быть заменены или дополнены новыми. Объект может иметь сколько угодно потомков, а вот предок может быть только один. Это дает возможность создавать довольно-таки сложную "ветвистую" (древовидную) иерархическую структуру объектов в программе.
Полиморфизм - это свойство родственных объектов (то есть объектов, имеющих общего родителя) решать схожие задачи разными способами. По-скольку поведение объекта определяется набором его методов, то программист, изменяя алгоритм того или иного метода, может придавать потомкам специфические свойства, отсутствующие у родителя. Для этого родительский метод должен быть перекрыт новым. В результате объект-родитель и объект-потомок будут содержать два разных метода, но с одинаковыми именами. В Turbo Pascal полиморфизм достигается не только за счет наследования и перекрытия методов, но и использованием виртуальных методов.


В языке Pascal, объектом мы будем называть тип данных, с которым связан некоторый набор процедур и функций (называемых методами). Для каждого объекта мы можем создавать любое количество экземпляров объекта.
В каждом экземпляре объекта есть некоторый набор переменных (они могут иметь различные типы), а всем экземплярам объекта соответствует набор методов, с помощью которых происходит работа с объектом. Хорошо реализованный объект будет представлять собой "чёрный ящик", работа с ним будет осуществляться только с помощью методов.
Описание объекта в Паскале. Для описания объекта используется следующий синтаксис:

type <имя объекта>=object

  <список имён полей>: <тип полей>;

  ....
  <список имён полей>: <тип полей>;
  <объявление метода>
  ...
  <объявление метода>
end;
Описание метода аналогично предварительному описанию функции.
После описания объекта описываются методы:
procedure <имя объекта>.<имя метода> <параметры>
<описание процедуры>


Источники:

  1. Лекции по Паскалю http://rsc-team.ru/index.pl?rzd=2&group=lection
  2. Основы ООП в среде Турбо Паскаль http://vtit.kuzstu.ru/books/shelf/162/index.html




Комментариев нет:

Отправить комментарий