Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебники 60105.doc
Скачиваний:
10
Добавлен:
01.05.2022
Размер:
827.9 Кб
Скачать
    1. Объектно-ориентированные языки програм-мирования

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

Несмотря на то, что принципиально ООП возможно на многих языках программирования, желательно для создания объектно-ориентированных программ использовать объектно-ориентированные языки, включающие специальные средства, например, Object Pascal (начиная с версии 5.5) и C++.

Особое место занимают объектные модели Delphi и C++Builder. Эти модели обобщают опыт ООП и включают некоторые новые средства, обеспечивающие эффективное создание более сложных систем. На базе этих моделей созданы визуальные среды для разработки приложений Windows. Сложность программирования удалось существенно снизить за счет создания специальных библиотек объектов, «спрятавших» многие элементы техники программирования.

    1. Классы

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

Класс - это структурный (составной) тип данных, который включает описание полей данных, а также процедур и функций, работающих с этими полями, - методов.

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

Совокупность полей определяется множеством состояний объекта с точки зрения решаемой задачи, а совокупность методов - множеством механизмов поведения объекта.

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

Воздействие на объект выполняется посредством изменения его полей или вызова его методов. Доступ к полям и методам объекта осуществляется с указанием имени объекта (при этом используются составные имена):

<имя объекта>.<имя поля>

или

<имя объекта>.<имя метода>.

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

Класс <имя класса>

интерфейс

<объявление полей и методов класса,

к которым возможно обращение извне>

реализация

<объявление полей и методов класса,

к которым невозможно обращение извне>

Конец описания

Такое объединение полей и методов в одном объекте является реализацией принципа инкапсуляции.

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

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

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

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

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

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

Если непосредственный родитель единственный, то наследование называется простым, а если таких классов несколько - то множественным.

При этом класс родитель (или классы родители) и класс потомок образуют иерархию.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]