Базовая форма
Базовая форма
Программный объект довольно простое существо, если известен класс, которому он принадлежит.
Пусть O - объект. По определению он является экземпляром некоторого класса. Точнее, он является прямым экземпляром (direct instance) только одного класса, например C.
С учетом наследования O будет тогда косвенным экземпляром других классов, - предков C. Это тема дальнейшего обсуждения; в данной дискуссии достаточно понятия прямого экземпляра. Везде, где не может возникнуть недоразумений, слово "прямой" будет опущено.Класс C называется порождающим классом (generating class) или просто генератором (generator) объекта O. Заметьте, C- программный текст, а O - структура данных времени выполнения, появляющаяся в результате работы рассмотренных ниже механизмов создания объектов.
Часть компонентов C является атрибутами. Эти атрибуты полностью определяют форму объекта, представляющего собой просто набор полей, по одному на каждый атрибут.
Рассмотрим класс POINT из предшествующей лекции (Текст класса POINT см. в лекции 7). Исходный текст имеет вид:
class POINT feature
x, y: REAL
... Объявления подпрограмм ...
end
Подпрограммы опущены, так как форма объектов полностью определяется атрибутами соответствующих классов. Данный класс имеет два атрибута x и y типа REAL, следовательно, его экземпляр - это объект с двумя полями, содержащими значения этого типа:
Рис. 8.1. Экземпляр класса POINT
В данной книге объекты - набор полей - изображаются в виде смежных прямоугольников, содержащих соответствующие значения. Внизу курсивом в скобках дается имя класса (в данном случае - POINT). Против каждого поля, тоже курсивом - имена соответствующих атрибутов (x и y). Иногда сверху указывается имя объекта (здесь P_OBJ), не имеющее двойника в программном тексте, но позволяющее ссылаться на объект при обсуждении.
На диаграммах, представляющих структуру ОО-системы или части такой системы, классы изображаются в виде эллипсов. Эти соглашения позволяют не путать классы и объекты.