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

  • docx
  • 18.11.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Л2-002075.docx

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

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


Объект может иметь определенный набор действий (операций), ко- торые можно произвести над атрибутами объекта. Другими словами, на- бор операций определяет возможные варианты поведения объекта.

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

Модели предметной области разрабатываются в виде графических диаграмм. Наиболее широко используются диаграммы, определенные в языке UML (Unified Modeling Language). В UML определены 9 типов диа- грамм, с помощью которых разрабатываются модели предметной области от логической модели до физической модели.

Коротко остановимся на трех диаграммах, которые используются при разработке практически каждой программы.

Диаграмма вариантов использования. Данная диаграмма определяет функциональность программы в терминах актеров и вариантов исполь- зования. Актер является инициатором выполнения варианта использова- ния, а вариант использования определяет функциональность.


Рис.5

Пример диаграммы вариантов использования для предметной облас- ти “Экзамен по дисциплине “Информатика и программирование” приве- ден на Рис.5. Актером является Студент, варианты использования изо- бражены в виде овалов. Основной вариант Вычислить итоговую оценку в обязательном порядке включает варианты Вычислить 10-ти бальную оценку и Вычислить 5-ти бальную оценку. Варианты ис- пользования, которые расширяют основной вариант и выполняются не всегда, а лишь при определенных условиях, помечаются стрелкой в об- ратном направлении и пометкой <<extended>>.

Диаграмма классов. Структурно программа представляет собой на- бор классов, находящихся между собой в определенных отношениях. Обозначение класса включает три секции, показанные на Рис.6.

Если класс не содержит атрибутов или операций – соответствующая секция остается не заполненной. Приведенная на Рис.6 диаграмма клас- сов описывает предметную область “Экзамен по дисциплине “Информа- тика и программирование”.

При разработке программ вместо термина атрибут используют термин поле, а вместо термина операция – термин метод.

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


Рис.6

 

Каждый класс может быть использован в качестве предка для опре- деления класса-наследника. Класс–наследник имеет поля и методы, унаследованные от предка, и может определять свои собственные поля и методы, а при необходимости переопределять унаследованные поля и методы. Наследование позволяет сократить затраты на разработку про- граммного кода за счет использования ранее разработанного и прове- ренного кода.

 

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

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

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

В простейшем случае сообщение представляет собой вызов из объ- екта одного класса метода объекта другого класса и переход в состояние ожидания ответа, как показано на Рис.7.


Объект А: класса1		Объект B: класса2
		

Сообщение (вызов метода)

 

 

Рис.7

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

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


Рис.8

 

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

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

-    отражение структуры предметной области в виде взаимосвязанных сущностей

-   более простая модификация программ за счет наследования полей и методов и возможности изменять код базовых классов-предков без вне- сения изменений в код классов-наследников.

-  поддержка создания программ с распределенной обработкой Недостатки:

-  меньшая предсказуемость поведения программы

-  повышенные требования к ресурсам среды исполнения

Для разработки программ на основе объектно-ориентированного про- граммирования используются языки Java, С#.


Отметим, что существуют языки, позволяющие использовать в одной программе сочетание обеих рассмотренных парадигм программировани- ям. К таким языкам относятся языки С++ и Object Pascal.