Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Особенностью ООП является то.doc
Скачиваний:
30
Добавлен:
09.02.2015
Размер:
467.97 Кб
Скачать

Т: Классы

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

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

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

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

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

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

Проектируемый класс должен содержать поля для сохранения параметров окна: XI, Yl, Х2, Y2 - координаты верхнего левого и нижнего правого углов и Color - цвет.

Пусть единственное сообщение, обрабатываемое объектом, – «Нарисовать окно». Соответственно, класс должен содержать метод, реализующий процесс рисования объекта. Поля объекта можно инициализировать при создании переменной-объекта, передав ему сообщение иници­ализации, включающее значения полей. Следовательно, класс должен содержать метод инициализации.

Окончательно получаем класс, имеющий следующую структуру:

Класс Окно:

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

метод Инициализировать (аХ 1 ,aY 1 ,aX2,aY2,aColor)

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

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

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

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

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

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

ИЛИ

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

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