Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка_ООТ.doc
Скачиваний:
4
Добавлен:
28.05.2015
Размер:
126.46 Кб
Скачать

Введение

Программисты – профессионалы стремятся делать свои системы полезными и работоспособными. В то же время разработка сложных систем ограничена компьютерными и кадровыми ресурсами.

Ранее программирование развивалось как процедурное программирование, которое предполагает, что основой программы является алгоритм, процедура, обработка данных. При разработке сложных программ использовалось структурное проектирование «сверху вниз», в котором задача разделяется на отдельные модули, где каждый модуль системы выполняет один из этапов общего процесса.

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

Объектная модель

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

Методы структурного проектирования помогают упростить процесс разработки сложных систем за счет использования алгоритмов, как готовых строительных блоков. Аналогично, методы объектно-ориентированного проектирования созданы, чтобы помочь разработчикам применять мощные выразительные средства объектного и объектно-ориентированного программирования, использующего в качестве блоков классы и объекты.

В большинстве программисты используют в работе один язык программирования и следуют этому стилю. Они программируют в парадигме, навязанной используемым ими языком.

Объектно-ориентированное программирование – это методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования.

В данном определении можно выделить 3 части:

  1. ООП используют в качестве базовых элементов объекты, а не алгоритмы.

  2. Каждый объект является экземпляром какого-либо определенного класса.

Классы организованны иерархически.

Программа будет объектно-ориентированной только при соблюдении всех указанных требований.

Объектно-ориентированный язык – это язык имеющей средства хорошей поддержки объектно-ориентированного стиля программирования.

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

  • абстрагирование

  • инкапсуляция

  • модульность

  • иерархия

Рассмотрим подробнее эти элементы.

Абстрагирование

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

Абстрагирование концентрирует внимание на внешних особенностях объекта и позволяет отделить самые существенные особенности поведения от несущественных.

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

Примеры объектов:

Для программ работы с файлами, объектами являются файлы, имеющие имя, объем памяти на конкретном устройстве и содержание.

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

В программе управления полетами объектом может быть самолет, имеющий высоту, скорость полета, он может взлетать и садится.

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

Объекты и классы

Объект обладает состоянием, поведением и идентичностью. Структура и поведение схожих объектов определяет общий для них класс; термины «экземпляр класса» и «объект» взаимозаменяемы.

Состояние объекта характеризуется перечнем (обычно статическим) всех свойств данного объекта и текущим (обычно динамическим) значением каждого их этих свойств.

К числу свойств объекта относятся присущие ему или приобретаемые им характеристики, черты, качества или способности, делающие данных объект самим собой.

Все свойства имеют некоторые значения. Эти значения могут быть простыми количественными характеристиками, а могут ссылаться на другой объект.

Например, размеру файла равно число 100 байт. (Состояние датчика описывается в терминах объекта. Температура, которая тоже может быть самостоятельным объектом: повышаться, понижаться и т.д.). Торговый автомат характеризуется имеющимися в наличии напитками.

Различие между объектами и простыми величинами: простые количественные характеристики (100) являются постоянными, неизвестными и непреходящими, тогда как объекты существует во времени, изменяются, имеют внутреннее состояние, преходящи и могут создаваться, уничтожаться и разделяться.

Программирование классов и объектов

Нам языке ObjectPascalкласс описывается как новый тип данных в разделе описанияType. Приведем пример описания простого класса:

Type

person = class

name: string[15];

address: string[30];

vozrast: integer

end;

В приведенном примере person– это имя класса. Каждый компонент в приведенной структуре обозначает конкретное свойство данной абстракции. В описании класса эти данные называютсяполями, то естьname,address,vozrast– это имена полей.

Описание определяет не объект, а класс, поскольку оно не вводит какой-либо конкретный экземпляр.

Для того, чтобы создать объекты данного класса, необходимо написать следующее:

var

secretar, dekan: person

Объекты не существуют изолированно, а подвергаются воздействию или сами воздействуют на другие объекты.

Поведение – это то, как объект действует и реагирует; поведение выражается в терминах состояния объекта и передачи сообщения.

Иными словами, поведение объекта – это наблюдаемая и проверяемая из вне деятельности объекта.

Операцией называется определенное воздействие одного объекта на другой с целью вызвать соответствующую реакцию.

Наиболее распространены 3 вида операции:

  • Модификатор – операция изменяющая состояние объекта

  • Селектор – операция, считывающая состояние объекта, но не меняющая состояния

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

Кроме того, для каждого класса существуют 2 универсальные операции. Они обеспечивают инфраструктуру, необходимую для создания и уничтожения экземпляров класса.

  • Конструктор – операция создания объекта и/или его инициализации

  • Деструктор – операция, освобождающая состояние объекта и/или разрушающая сам объект.

В объектно-ориентированных языках, операции, выполняемые над данным объектом, называются методами и входят в определение класса объекта.

Методы класса – это процедуры и функции, объявление которых включено в описание класса.

В описанный ранее класс можно включить метод print, который будет выводить на печать все данные об объекте. Кроме этого необходимо включить в описание класса метод конструктор.

Метод – конструктор выделяет память для данного объекта. В отличие от обычных методов он описывается служебным словом constructorи ему обычно присваивают имяcreate:

constructor create

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

Созданный экземпляр уничтожается методом деструктор, который описывается служебным словом destructorи имеет типичное названиеdestroy.

Destructor destroy

Описанный ранее класс personс добавление методов будет иметь вид:

Type

person = class

name: string[15];

address: string[30];

vozrast: integer

procedure print;

constructor create;

end;

После описания объекта для его создания необходимо выполнить следующие действия.

secret:=person.create;

dekan:=person.create;

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

secretj.address=”Луговая 9-12”

или

dekan.print;