Объектно-ориентированное программирование представляет собой метод программирования, который весьма близко напоминает наше поведение. Оно является естественной эволюцией более ранних нововведений в разработке языков программирования. Объектно-ориентированное программирование является более структурным, чем все предыдущие разработки, касающиеся структурного программирования. Оно также является более модульным и более абстрактным, чем предыдущие попытки абстрагирования данных и переноса деталей программирования на внутренний уровень. Объектно-ориентированный язык программирования характеризуется тремя основными свойствами:
Инкапсуляция. Комбинирование записей с процедурами и функциями, манипулирующими полями этих записей, формирует новый тип данных - объект.
Наследование. Определение объекта и его дальнейшее использование для построения иерархии порожденных объектов с возможностью для каждого порожденного объекта, относящегося к иерархии, доступа к коду и данным всех порождающих объектов.
Полиморфизм. Присваивание действию одного имени, которое затем совместно используется вниз и вверх по иерархии объектов, причем каждый объект иерархии выполняет это действие способом, именно ему подходящим.
Языковые расширения Borland Pascal предоставляют вам все средства объектно-ориентированного программирования: большую структурированность и модульность, большую абстрактность и встроенную непосредственно в язык возможность повторного использования. Все эти характеристики соответствуют коду, который является более структурированным, более гибким и более легким для обслуживания.
Объектно-ориентированное программирование порой требует от вас оставить в стороне характерные представления о программировании, которые долгие годы рассматривались, как стандартные. Однако после того, как это сделано, объектно-ориентированное программирование становится простым, наглядным и превосходным средством разрешения многих проблем, которые доставляют неприятности традиционному программному обеспечению.
Дадим хороший совет тому, кто уже имел дело с объектно-ориентированным программированием на других языках. Оставьте в стороне ваши прежние впечатления об объектно-ориентированном программировании и изучайте объектно-ориентированные характеристики Borland Pascal в их собственных терминах. Объектно-ориентированное программирование не является единственным путем, оно представляет собой континуум идей. По своей объектной философииBorland Pascal больше напоминает С++, чем Smalltalk. Smalltalk является интерпретатором, тогда как Borland Pascal с самого начала был чистым компилятором реального кода. Компилятор реального кода выполняет работу иначе (и значительно быстрее), чем интерпретатор. Borland Pascal был сконструирован, как инструмент разработки продуктов, а не как инструмент исследования.
Для тех, кто не имеет об этом ни малейшего понятия, мы не будем подробно объяснять, что такое объектно-ориентированное программирование. В этот вопрос и так уже внесено достаточно путаницы. Поэтому забудьте о том, что люди говорили вам об объектно-ориентированное программировании. Наилучший способ (и, фактически, единственный) изучить что-либо полезное об объектно-ориентированное программировании - это сделать то, что вы уже почти сделали: сесть и попытаться узнать все самостоятельно.
В этом разделе :
8 Объекты Объекты моделируют характеристики и поведение элементов мира, в котором мы живем.
8 Наследование Целью науки является описание взаимодействий во вселенной. Большая часть работы в науке при продвижении к цели заключается просто в построении генеалогических деревьев.
8 Объекты: наследующие записи В терминах Паскаля, объект во многом схож с записью, которая является оболочкой для объединения нескольких связанных элементов под одним именем.
8 Tехника программирования Даже если вы можете обратиться к полям объекта непосредственно, это будет не совсем хорошей идеей.
8 Методы Методы являются одними из наиболее примечательных атрибутов объектно-ориентированное программирования и требуют некоторой практики перед использованием.
8 Совмещенные код и данные Одним из важнейших принципов объектно-ориентированного программирования является то, что программист во время разработки программы должен думать о коде и о данных совместно.
8 Определение методов Процесс определения методов объектов напоминает модули Borland Pascal.
8 Объекты и модули Имеет смысл определять объекты в модуле посредством описаний типа объекта в интерфейсной части модуля, а тела процедур и методы объекта - в секции реализации.
8 Программирование в "действительном залоге" Большая часть из того, что говорилось об объектах до сих пор, исходит из удобств и перспектив Borland Pascal, поскольку наиболее вероятно, что это именно то, с чего вы начнете.
8 Инкапсуляция Объединение в объекте кода и данных называется инкапсуляцией. Возможно вы сможете предоставить достаточное количество методов, благодаря чему пользователь объекта никогда не будет обращаться к полям объекта непосредственно.
8 Методы: никакого ухудшения Добавление этих методов незначительно увеличивает объем исходного кода, однако развитый компоновщик Borland Pascal выбрасывает код любого метода, который ни разу не вызывается в программе.
8 Расширяющиеся объекты Объектно-ориентированное программирование решает проблему создания гибких процедур с помощью наследования
8 Cтатические методы Все показанные до сих пор методы, связанные с типами объектов TEmployee, THourly, TSalaried и TCommissioned, являются статическими методами. Однако, со статическими методами связана пpоблема наследования.
8 Полиморфизм Обсуждаемые до сих пор методы являются статическими. Они являются статическими в том же смысле, в каком статической является статическая переменная: компилятор размещает ее и разрешает все ссылки на нее во время компиляции.
8 Совместимость типов объектов Наследование до некоторой степени изменяет правила совместимости типов в Borland Pascal. Помимо всего прочего, порожденный тип наследует совместимость типов всех своих порождающих типов.
8 Полиморфические объекты При чтении предыдущего раздела вы, возможно, задали себе вопрос: "Если любой порожденный от типа параметра тип может передаваться в качестве параметра, то как же пользователь параметра узнает, какой тип объекта он получил?".
8 Виртуальные методы Метод становится виртуальным, если за его объявлением в типе объекта стоит новое зарезервированное слово virtual.
8 Вызов виртуальных методов В процессе разработки программы вам, возможно, захочется повысить меры безопасности, которая снижается из-за вызовов виртуальных методов Borland Pascal.
8 Статические или виртуальные методы? В общем случае, вам следует делать методы виртуальным. Используйте статические методы только в том случае, если вы хотите получить оптимальную эффективность скорости выполнения и использования памяти.
8 Динамические объекты Все приведенные до сих пор объекты имели статические реализации типов объектов, которым в объявлении var присваивались имена и которые размещались в сегменте данных или в стеке.
8 Размещение и инициализация Borland Pascal расширяет синтаксис процедуры New, что является более компактным и более удобным средством выделения пространства для объекта в динамически распределяемой области памяти и инициализации объекта с помощью только одной операции.
8 Удаление динамических объектов Также, как и обычные записи Паскаля, размещаемые в динамически распределяемой области памяти, объекты могут удаляться процедурой Disрose, если они больше не нужны
8 Деструкторы Borland Pascal предоставляет специальный тип метода, называемый "сборщиком мусора" или деструктором, для очистки и удаления динамически размещенного объекта.
8 Пример размещения объекта Последний пример программы даст вам возможность приобрести некоторые навыки в использовании размещенных в динамической памяти объектов, включая использование для удаления объекта деструктора.
8 Что же дальше? Как и во всяком другом аспекте машинного программирования, вы не преуспеете в объектно-ориентированном программировании, если будете только читать о нем, но вы добъетесь результата, если начнете программировать.
| |