Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






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




ЛЕКЦИЯ 7. ОБЪЕКТНО ОРИЕНТИРОВАННОЕ ПРОЕКТИРОВАНИЕ И ПРОГРАММИРОВАНИЕ

 

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

1. Объект и класс. 1

2. Данные. 2

3. Методы. 2

4. Свойства. 2

5. События. 2

2. Принципы объектно-ориентированного программирования. 3

1. Наследование. 3

2. Инкапсуляция. 4

3. Полиморфизм. 4

3. Объектно- ориентирование проектирование с использованием UML. 4

1. Диаграмма вариантов использования (use case diagram) 5

2. Диаграмма классов (class diagram) 6

3. Диаграмма состояний (statechart diagram) 7

4. Диаграмма деятельности (activity diagram) 8

5. Диаграмма последовательности (sequence diagram) 9

6. Диаграмма кооперации (collaboration diagram) 10

7. Диаграмма компонентов (component diagram) 11

8. Диаграмма развертывания (deployment diagram) 11

4. Реализация языка UML в CASE-инструментарии Rational Rose. 12

 

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

 

Объект и класс

Объект - совокупность свойств и методов, а также событий, на которые он может реагировать Внешнее управление объектом осуществляется через обработ­чики событий. Эти обработчики обращаются к методам и свойствам объекта.. В результате выполнения методов объекта мо­гут генерироваться новые события, воспринимаемые другими объектами програм­мы или пользователем.

Под классом понимают некоторую абстракцию совокупности объектов, которые имеют общий набор свойств и обладают одинаковым поведением. Каждый объект в этом случае рассматривается как экземпляр соответствующего класса.

Важной особенностью классов является возможность их организации в виде некоторой иерархической структуры. В качестве наиболее общего понятия или категории берется понятие, имеющее наибольший объем и, соответственно, наименьшее содержание. Затем данное общее понятие некоторым образом конкретизируется, тем самым уменьшается его объем и увеличивается содержание. Этот процесс конкретизации понятий может быть продолжен до тех пор, пока на самом нижнем уровне не будет получено понятие, дальнейшая конкретизация которого в данном контексте либо невозможна, либо нецелесообразна.

Данные

Данные - это характеристики объек­та. Пользователь и объекты программы должны, конечно, иметь возможность чи­тать эти данные объекта, как-то их обрабатывать и записывать в объект новые зна­чения.

Здесь важнейшее значение имеет принцип скрытия дан­ных, заключающийся в том, что внешним объектам и поль­зователю прямой доступ к данным запрещен. Это делается по двум причинам. Во-первых, для надежного функционирования объекта необходимо заботиться о том, что бы внешний объект не мог занести в объект неверные данные. Во-вторых, необходимо изолировать внешние объекты от особенностей внут­ренней реализации данных.

Методы

Чтобы выдержать принцип скрытия данных, в объекте обычно определяются процедуры и функции, обеспечивающие все необходимые операции с данными: их чтение, преобразование, запись. Эти функции и процедуры называются методами, и через них происходит общение с данными объекта

Свойства

Совокупность данных и методов их чтения и записи называется свойством. Свойства можно изменять программно во вре­мя выполнения вашей прикладной программы. Причем внешне это все выглядит так, как будто объект имеет какие-то данные, например, целые числа, которые можно прочитать, использовать в каких-то вычислениях, заложить в объект но­вые значения данных. В действительности все обстоит иначе. Все общение с данными происходит через методы их чтения и записи.

События

Средой взаимодействия объектов являются сообщения, генерируемые в результате различных собы­тий. События наступают, прежде всего, вследствие действий пользователя — пе­ремещения курсора мыши, нажатия кнопок мыши или клавиш клавиатуры. Но события могут наступать и в результате работы самих объектов. В каждом объекте определено множество событий, на которые он может реагировать. В конкретных экземплярах объекта могут быть определены обработчикикаких-то из этих собы­тий, которые и определяют реакцию данного экземпляра объекта.

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

Наследование

Принцип, в соответствии с которым знание о более общей категории разрешается применять для более узкой категории, называется наследованием. Наследование тесно связано с иерархией классов, которая определяет, какие классы следует считать наиболее абстрактными и общими по отношению к другим классам. При этом если некоторый общий или родительский класс (предок) обладает фиксированным набором свойств и поведением, то производный от него класс (потомок) должен содержать этот же набор свойств и поведение, а также дополнительные, которые будут характеризовать уникальность полученного таким образом класса. В этом случае говорят, что производный класс наследует свойства и поведение родительского класса.

Рассмотрим в качестве примера класс "Автомобиль". Данный класс определяется как некоторая абстракция свойств и поведения всех реально существующих автомобилей. При этом свойствами класса "Автомобиль" могут быть такие общие свойства, как наличие двигателя, трансмиссии, колес, рулевого управления. Если в качестве производного класса рассмотреть класс "Легковой автомобиль", то все выделенные выше свойства будут присущи и этому классу. Можно сказать, что класс "Легковой автомобиль" наследует свойства родительского класса "Автомобиль". Однако, кроме перечисленных свойств, класс-потомок будет содержать дополнительные свойства, например такое, как наличие салона с количеством посадочных мест 2—5.

 

 

Рисунок 4 Иерархия вложенности классов для примера "Автомобиль"

---------------

Инкапсуляция

Этот термин характеризует сокрытие отдельных деталей внутреннего устройства классов от внешних по отношению к нему объектов или пользователей. Действительно, взаимодействующему с классом субъекту или клиенту нет необходимости знать, каким образом реализован тот или иной метод класса, услугами которого он решил воспользоваться. Конкретная реализация присущих классу свойств и методов, которые определяют поведение этого класса, является собственным делом данного класса. Более того, отдельные свойства и методы класса вообще могут быть невидимы за пределами этого класса, что является базовой идеей введения различных категорий видимости для компонентов класса.

Если продолжить рассмотрение примера с классом "Легковой автомобиль", то нетрудно проиллюстрировать инкапсуляцию следующим образом. Основным субъектом, который взаимодействует с этим классом, является водитель. Вполне очевидно, что не каждый водитель в совершенстве знает внутреннее устройство легкового автомобиля. Более того, отдельные детали этого устройства сознательно скрыты в корпусе двигателя или в коробке передач. А в случае нарушения работы автомобиля, являющейся причиной неадекватности его поведения, необходимый ремонт выполняет профессиональный механик.

Полиморфизм.

Под полиморфизмом (греч. Poly— много, morfos — форма) понимают свойство некоторых объектов принимать различные внешние формы в зависимости от обстоятельств. Применительно к ООП полиморфизм означает, что действия, выполняемые одноименными методами, могут отличаться в зависимости от того, какому из классов относится тот или иной метод.

Рассмотрим, например, три объекта или класса: двигатель автомобиля, электрический свет в комнате и персональный компьютер. Для каждого из них можно определить операцию "выключить". Однако сущность этой операции будет отличаться для каждого из рассмотренных объектов. Так для двигателя автомобиля вызов метода двигатеяь_автомобиля.выключить о означает прекращение подачи топлива и его остановку. Вызов метода Комната.электрический_свет. выключить о означает простой щелчок выключателя, после чего комната погрузится в темноту. В последнем случае действие персональный_ компьютер.выключить о может быть причиной потери данных, если выполняется нерегламентированным образом.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных