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

Реализация

Интерфейс

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

Понятие класса. Стр-ра и орг-я определения класса.

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

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

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

Класс Окно:

поляX1,Y1,X2,Y2, Color

методИнициализировать(aX1,aY1,aX2,aY2,acolor)

методИзобразить

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

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

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

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

Все методы объекта обязательно имеют доступ ко всем полям своего объекта. В рассматриваемых далее языках программирования это достигается через неявную передачу в метод специального параметра - адреса области данных конкретного объекта (Self - в Паскале и this - в С++). Таким образом, уменьшается количество параметров, явно передаваемых в метод.

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

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

<объявление полей и методов класса, к которым возможно обращение извне>

<объявление полей и методов класса, к которым невозможно обращение извне>

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

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

Рис. 1.18. Интерфейс и реализация класса

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

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

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

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

Класс Файл

Интерфейс

Конструктор создать

Метод открыть(имя файла);

Метод добавить(фамилия, телефон);

Метод найти(фамилия);

Деструктор удалить;

Реализация

Поле Файл_переменная;

Поле Состояние файла;

Поле проверка открытия;

Конец.

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