Основы объектно-ориентированного программирования



     f в градусах цельсия |          

Атрибуты и подпрограммы


Любой абстрактный тип данных и POINT в частности характеризуется набором функций, описывающих операции применимые к экземплярам АТД. В классе, реализующем АТД, функции становятся компонентами (features) - операциями, применимыми к экземплярам класса.

В лекции 6 было показано, что в АТД существуют функции трех видов: запросы (queries), команды (commands) и конструкторы (creators). Для компонентов классов необходима дополнительная классификация, основанная на том, каким образом реализован данный компонент - в пространстве или во времени (by space or by time). (См. "Категории функций", лекция 6)

Пример координат точки отчетливо демонстрирует эту разницу. Для точек доступны два общепринятых представления - в декартовых или полярных координатах. Если для представления выбрана декартова система координат, то каждый экземпляр класса содержит два поля представляющих координаты x и y соответствующей точки:

Представление точки в декартовых координатах

Рис. 7.2.  Представление точки в декартовых координатах

Если p1 является такой точкой, то получение значений x и y сведется просто к просмотру соответствующих полей данной структуры. Однако определение значений ? и ? требует вычисления выражения v(x2 + y2) для ? и arctg (y/x) для ? (при условии ненулевого x).

Использование полярной системы координат (рис. 7.3) приводит к противоположной ситуации. Теперь ? и ?доступны просто как значения полей, а определение x и y возможно после простых вычислений (? cos?, ? sin?, соответственно).

Представление точки в полярных координатах

Рис. 7.3.  Представление точки в полярных координатах

Приведенный пример указывает на необходимость рассмотрения компонентов двух видов:

  • Некоторые компоненты представлены в пространстве и, можно сказать, ассоциируются с некоторой частью информации каждого экземпляра класса. Они называются атрибутами (attributes). Для точки, представленной в декартовых координатах, атрибутами являются x и y, а в полярных координатах в роли атрибутов выступают rho и theta.
  • Другие компоненты представлены во времени, и для доступа к ним требуется описать некоторые вычисления (алгоритмы), применимые далее ко всем экземплярам данного класса.


    Содержание  Назад  Вперед