<<
>>

Свойства объектов

Структуру и поведение объектов в ООП определяют свойства инкапсуляции, наследования и полиморфизма. Инкапсуляция. Объединение всех данных и методов объекта (включая данные и методы объектов-предков) называется инкапсуляцией.
Механизм инкапсуляции скрывает данные и методы объекта от внешнего вмешательства или неправильного использования, облегчая тем самым понимание работы программы, а также ее отладку и модификацию, так как только в очень редких случаях разработчика интересует внутренняя реализация объектов — главное, чтобы объект обеспечивал функции, которые он должен предоставить. Взаимодействие с объектом происходит через интерфейс. Обычно интерфейс определяет единственный способ входа в объект и выхода из него, детали реализации остаются инкапсулированными. Интерфейс объекта составляют его свойства, методы и события. Только содержимое интерфейса предоставляется данным объектом в распоряжение других объектов, благодаря этому предотвращается доступ других объектов к внутренним переменным состояния объекта.
Таким образом, инкапсуляция обеспечивает использование объекта, не требуя знания того, как именно он устроен внутри. Данные и методы внутри объекта могут обладать различной степенью открытости (или доступности). Некоторые из них объявляются общедоступными, другие доступны только из методов самого объекта. Обычно открытые данные используются дня а -6518 Попон того, чтобы обеспечить контролируемый интерфейс с его закрытой частью. Наследование позволяет определять новые классы в терминах существующих классов и повторно использовать уже созданную часть программного кода в других проектах. Посредством наследования формируются связи между объектами, а для выражения процесса наследования используют понятия «родители» и «потомки». В программировании наследование служит для сокращения избыточности кода, и суть его заключается в том, что уже существующий интерфейс вместе с его программной частью можно использовать для других объектов.
При наследовании могут также проводиться изменения интерфейсов. Наследование — это процесс, посредством которого один объект может приобретать свойства другого. Точнее, объект может наследовать свойства другого объекта и добавлять к ним черты, характерные только для него. Обычно, если объекты соответствуют конкретным сущностям реального мира, то классы являются абстракциями, выступающими в роли понятий. Между классами, как между понятиями, существуют иерархические отношения, связывающие класс с его родителем и потомком, которые и реализуются механизмом наследования. Наследование выполняет в ООП несколько важных функций: • моделирует концептуальную структуру предметной области (в виде иерархии классов); • позволяет использовать одни и те же писания для задания разных классов; • обеспечивает программирование больших систем путем пошаговой конкретизации классов. Обычно в объектно-ориентированных языках существует класс, являющийся вершиной всей иерархии наследования (как правило, называемый Object), а одним из свойств объекта является ссылка на объект-предок, которому переадресуются все сообщения, не обрабатываемые данным объектом. Полиморфизм характеризует способность различных объектов по-разному обрабатывать одинаковые сообщения. При этом различные объекты используют одинаковую абстракцию, т. е. могут обладать свойствами и методами с одинаковыми именами. Однако обращение к ним будет вызывать различную реакцию для различных объектов. На практике это означает, что можно соз- тать общий интерфейс вызова для группы близких по смыслу действий. Большое достоинство полиморфизма состоит в том, что при использовании объекта можно вызывать определенное свойство или метод, не заботясь о том, как объект выполняет задачу. Таким образом, полиморфизм означает присваивание методу одного имени или обозначения, которое совместно используется объектами различных классов, при этом каждый объект реализует действие способом, соответствующим его классу. Проиллюстрируем свойства ООП на примере известной задачи размещения и перемещения некоторого количества мерцающих разноцветных точек на плоскости экрана.
Точка на экране характеризуется координатами х, У , имеет цвет, может быть видимой или невидимой и может перемещаться по экрану. Очевидно, что основой изображения точки является ее положение (позиция) на экране (например, значения координат х и У относительно левого верхнего угла экрана). Таким образом, Может быть объявлен класс Позиция со свойствами — координатами х и У , имеющими тип целое число, и методом Назначить- Координаты: Позиция(X , Y, НазначитьХУ) Далее объявим класс Точка, который может быть описан Следующим образом: Точка(X , У, Видимость, Цвет, НазначитьХУ, НазначитьЦвет, Зажечь, Погасить, Переместить) При таком объявлении свойства и методы класса Позиция полностью входят в класс Точка. Используя механизм наследования, опишем класс Точка как потомка класса Позиция: Точка (Позиция, Видимость, Цвет, НазначитьЦвет, Зажечь, Погасить, Переместить) Интерфейс такого объекта составляют только методы. Атрибуты х, У, Видимость, Цвет получают конкретные значения при вызове интерфейсных методов НазначитьХУ, Переместить (для атрибутов X, У), НазначитьЦвет (для атрибута Цвет), Зажечь, Погасить (для атрибута Видимость). Тогда для создания объекта такого класса (например, Точка!) необходимо активизировать процедуру размещения объекта и присвоить атрибутам конкретные значения, активизировав соответствующие методы, например: Точка1 = Создать.Точка; Точка!.. НазначитьХУ(3,5); Точка1.НазначитьЦвет(Красный); Точка!.Зажечь; В результате таких действий на экране появится красная точка с координатами Х= 3, У- 5. Чтобы проиллюстрировать свойство полиморфизма, объявим класс цветных кругов, которые задаются координатой центра и радиусом. Этот класс должен наследовать все возможности класса Точка, НО методы НазначитьЦвет, Зажечь, Погасить, Переместить, по результату действия являясь теми же самыми, фактически не могут быть реализованы одинаковой последовательностью команд в случае с точкой и кругом. Эта ситуация разрешается путем использования полиморфизма — методы классов имеют одинаковое имя (и, соответственно, одинаковый ожидаемый результат), а внутреннее описание методов будет различно для разных классов. Тогда класс Круг может иметь следующее описание: Круг (Точка, Радиус, Назначить цвет. Зажечь, Погасить, Переместить)
<< | >>
Источник: О. Л. Голицына, Т. Л. Партыка, И. И. Попов. ЯЗЫКИ ПРОГРАММИРОВАНИЯ. 2008

Еще по теме Свойства объектов:

  1. § 1 Общие свойства семейственных отношений. – Общественный их характер. – В чем они подчиняются юридическому определению. – Свойство семейной власти и отличие ее от обладания. – Вопросы и иски о состоянии, соединенные с семейными правами. – Восстановление семейной власти. – Вмешательство правительственной власти в семейные отношения. – Отношения родственные.
  2. Статья 298. Незаконное проведение поисковых работ на объекте археологического наследия, уничтожение, разрушение или повреждение объектов культурного наследия
  3. 2.2. Идентификационные признаки и свойства
  4. СИСТЕМА НЕРВНАЯ: СВОЙСТВО
  5. 2.1.5. Юридические особенности и свойства информации
  6. КОНЦЕПЦИЯ И СВОЙСТВА ИНЬ — ЯН
  7. Общие свойства
  8. Глава 3 ВОСПРИЯТИЕ: ОРГАНИЗАЦИЯ И СВОЙСТВА
  9. Проявление психологического свойства
  10. Часть I Мужчина и женщина — свойства и качества
  11. § 5.2. Свойства и функции системы управления в организации
  12. § 6.3. Власть как свойство социальной системы
  13. 1. Обеспечительные свойства залога
  14. § 1. Понятие и свойства ценных бумаг
  15. § 3 Категории вещей по различию в свойствах
  16. 1. Понятие и признаки (свойства) ценной бумаги
  17. СВОЙСТВА НАЙДЕННОГО В ТЕЛЕ
  18. IV. 3. 2. Проблема систематизации свойств нервной системы.
  19. § 13 Разделение имуществ по свойству обладателей