В. Дихтяр ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ (для бакалавров) Российский университет дружбы народов Институт гостиничного бизнеса и туризма Раздел 1. Разработка алгоритмов и программ Тема 1-5. Концепция объектно-ориентированного программирования Москва 2016
35 ( Ô ҧ )_Iq Базовые понятия Объект Ô свойство Ô метод обработки событие класс Ô = cls Ô Ô совокупность свойств определенных сущностей и методов их обработки ( ҧ -средств). Свойство характеристика (параметр) Ô. {Ô }наделены определенными свойствами, которые в совокупности выделяют Ô из множества других Ô.
35 ( Ô ҧ )_Iq Пример Ô : перечисление свойств: Ô_А (свойство-1, свойство-2, …,свойство-k). Свойства Ô различных cls могут «пересекаться» возможны Ô, обладающие одинаковыми свойствами: Ô_В (...свойство-n, свойство-m,...свойство-r,...) Ô_С (...свойство-n,…, свойство-r,...).
Абстракция (1) способность отображать Ô внешнего мира в форме абстрактных Ŝ (структур) в соответствии с решаемой задачей. Абстрактные структуры, при помощи которых реализуется этот принцип, называются cls. cls структура, описывающая Ô внешнего мира с помощью двух типов элементов: состояние Ô описывается полями класса (переменными разного типа), а поведение Ô его методами (процедурами и функциями). 35 ( Ô ҧ )_Iq
cls - абстрактные описания структур Ď, но сами Ď они не содержат. Ď появляются тогда, когда по описаниям cls выделяется необходимое пространство и в нем создаются экземпляры cls, или Ô. Тогда для каждого поля cls отводится необходимая область памяти и в эту область можно поместить нужное значение. 35 ( Ô ҧ )_Iq Абстракция (2)
35 ( Ô ҧ )_Iq Cвязь основных понятий OOP
35 ( Ô ҧ )_Iq Методика объектно-ориентированного проектирования Объектно-ориентированные τ и методики проектирования ҧ - продуктов (обеспечение выполнения принципов Ô-подхода): инкапсуляция (замыкание) свойств Ď и ҧ в Ô; наследование; полиморфизм Инкапсуляция = сочетание ŜĎ с методами их обработки в абстрактных типах Ď - clsÔ Полиморфизм способность Ô реагировать на запрос сообразно своему типу (одно и то же имя метода может использоваться для различных cls Ô)
35 ( Ô ҧ )_Iq Свойства методик объектно- ориентированного проектирования Ô описывается как Θ некоторой сущности реального мира; Ô, для которых определены места хранения, рассматриваются во взаимосвязи, и применительно к ним создаются ҧ - модули Š.
35 ( Ô ҧ )_Iq Объектно-ориентированный анализ идентификация Ô и их свойств; перечень Ǫ, выполняемых над каждым Ô, в зависимости от его состояния; связи между Ô для образования cls ; требования к интерфейсу с Ô.
35 ( Ô ҧ )_Iq этапа объектно-ориентированного проектирования разработка диаграммы аппаратных средств системы обработки Ď, показывающей процессоры, внешние устройства, вычислительные сети и их соединения; разработка структуры cls, описывающей связь между cls и Ô; разработка диаграмм Ô, показывающих взаимосвязи с другими Ô; разработка внутренней Ŝ ( ҧ -продукта)
Концепция объектно-ориентированного программирования Основные принципы: абстракция, наследование, инкапсуляция, полиморфизм. 35 ( Ô ҧ )_Iq
Наследование свойство cls порождать другие clsы таким образом, что в порожденном cls (cls-потомке) содержатся все поля и все методы cls - родителя (базового cls), а также дополнительно собственные поля и методы. 35 ( Ô ҧ )_Iq
Пример 1 Измерительные приборы: термометр, барометр и весы. Чтобы описать эти приборы внутри ҧ, создается три cls 35 ( Ô ҧ )_Iq cls «термометр» cls «весы» cls «барометр» Инв. номер Название Цвет Исполнение Температура ВесДавление Изменить температуру Изменить вес Изменить давление Метод классов Поля классов
Методы cls представляют реализацию некоторых действий - описывают поведение cls. Например, метод cls «термометр», который носит название «измерить температуру», призван помещать значение температуры в поле с именем «температура». 35 ( Ô ҧ )_Iq Экземпляр класса «термометр» Экземпляр класса класс «весы» Экземпляр класса класс «барометр» Инв. номер НазваниеTRMНазваниеVSVНазваниеDRM Цветбелый ЦветсерыйЦветхром Исполнениеоконный ИсполнениенапольныйИсполнениенастенный Температура 10Вес 2Давление 230 Изменить температуру Изменить вес Изменить давление Пример 1
Пример 2 У разных cls есть одинаковые поля: Инв. номер. Название, Цвет, Исполнение. Наследование: класс Измеритель, в котором повторяющиеся поля, а затем cls Термометр, Весы и Барометр 35 ( Ô ҧ )_Iq класс «Измеритель» Инв. номер Название Цвет Исполнение класс «термометр» наследник класса «измеритель» класс «весы» наследник класса «измеритель» класс «барометр» наследник класса «измеритель» Температура ВесДавление Изменить температуру Изменить вес Изменить давление
Инкапсуляция (1) способность cls скрывать от внешнего мира детали внутренней реализации. Области видимости обозначаются в структуре cls специальными служебными словами: private - все поля и методы, объявленные в этой области видимости, невидимы для внешнего мира, public - все, объявленное в этой зоне, для внешнего мира открыто. 35 ( Ô ҧ )_Iq
У cls появляется защитный корпус, предохраняющий от излишней перегрузки ҧ объявленными именами и методами. Наружу cls экспонирует только то, что составляет его интерфейс и предназначено для внешнего взаимодействия. Все остальные поля и методы он скрывает внутри, помещая их в область видимости private. 35 ( Ô ҧ )_Iq Инкапсуляция (2)
Полиморфизм способность Ôов выполнять одну и ту же команду разными способами. Свойства: способности трактовать Ô cls-наследника как тип базового cls способности cls иметь виртуальные методы. Особенность виртуального метода - надежная связь с созданным экземпляром cls. 35 ( Ô ҧ )_Iq
Пример Если добавить в каждый из clsов (в класс Измеритель и каждый из его наследников) метод Сигналить, а в реализации этого метода описали бы для каждого cls свой способ подавать сигнал (для термометра мигать, для весов издавать звук сирены, а для барометра свистеть), то мы могли бы всем Ôам, потомкам класса Измеритель, дать команду: измерители, сигналить! И каждый из них подал бы сигнал: термометры бы замигали, весы издали звук сирены, а барометры засвистели. Это и есть результат работы виртуальных методов. 35 ( Ô ҧ )_Iq