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

Ключевые концепции


  • ОО-вычисления характеризуются высоко динамичной структурой времени выполнения, в которой объекты создаются только по запросу.
  • Некоторые объекты, используемые ПО, являются моделями внешних объектов (обычно косвенными). Другие объекты служат только для целей проектирования и реализации.
  • Объект состоит из ряда значений, называемых полями. Каждое поле соответствует атрибуту генератора объекта (класса, прямым экземпляром которого является объект).
  • Значение, в частности поле объекта, является объектом или ссылкой.
  • Ссылка может быть пустой (void) или присоединенной к объекту. Проверка условия x = Void позволяет определить текущее состояние ссылки. Корректное выполнение вызова x.f (...) возможно, если x не пустая ссылка.
  • Если объявление класса начинается с предложения class C ..., то сущность типа Cбудет обозначать ссылку, которая может быть присоединена к экземпляру C. Если начало объявления выглядит как expanded class D ..., то сущность типа D будет обозначать объект (экземпляр D) и никогда не может быть пустой ссылкой.
  • Базовые типы (BOOLEAN, CHARACTER, INTEGER, REAL, DOUBLE) определены как развернутые классы.
  • Развернутые объявления дают возможность определять составные объекты: объекты с подобъектами.
  • Объектные структуры могут содержать циклические цепочки ссылок.
  • Инструкция создания create x создает объект, инициализирует его поля значениями по умолчанию и присоединяет к нему x. Если в классе определены порождающие процедуры создания, то выполнение инструкции вида create x.creatproc (...) приведет, кроме того, к заданной специфической инициализации полей.
  • Для сущностей ссылочного типа присваивание (:=) и проверка эквивалентности (=) являются ссылочными операциями. Для сущностей развернутых типов используется семантика значений. Соответствующая семантика распространяется и на смешанные операнды.
  • В результате ссылочных операций появляются динамические псевдонимы. Они затрудняют получение выводов о работе системы при анализе ее текста. На практике большинство нетривиальных действий со ссылками можно инкапсулировать в библиотечные классы.



Содержание раздела