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

Содержание

Cвязи (отношения, ассоциации)

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

Чернойван Василий Александрович
vchernoivan@gmail.com
http://chernoivan.ru/oop/


Слайд 2Cвязи (отношения, ассоциации)


Слайд 3 Связь это физическое или концептуальное соединение между объектами


Слайд 4Пример: Составная фигура объединяет
множество других фигур в одну


Слайд 5Составная фигура объединяет
множество других фигур в одну


Слайд 6Ассоциация


Слайд 7Стереотип




Слайд 8Направленность


Слайд 9Видимость
Глобальная: один из объектов глобален по отношению к другому (глобальная переменная

или статические методы)
Параметр: один из объектов (или ссылка на него) передан другому в качестве параметра операции.
Поле класса: один из объектов (или ссылка на него) является частью другого.
Локальная: один из объектов локально порождается другим в ходе выполнения какой-либо операции.

Слайд 10Видимость


Слайд 11Видимость


Слайд 12Видимость


Слайд 13Видимость


Слайд 14Кратность (мощность)
1 – в точности один объект 0..1 – ни

одного либо один объект * – множество объектов 0..* – множество объектов, возможно 0 1..* – множество объектов, но хотя бы один

Слайд 15Имена участников


Слайд 16Атрибуты связей
Стереотип – устойчивый характер (смысл, семантика) связи
Мощность – сколько объектов

может участвовать в связи с обеих сторон
Направленность – определяет кто из двух участников «знает» о другом
Видимость – каким образом один объект «видит» другой
Имена участников

Слайд 17Ещё кое-что




Слайд 18Типы отношений
Ассоциация
Зависимость
Использование
Наследование
Реализация
Агрегация
Конкретизация
Класс-ассоциация


Слайд 19Зависимость


Слайд 20Зависимость
Мощность: определяется контекстом
Направленность: от зависимого к независимому
Стереотип связи: зависимость, поменял «независимого»

— нужно менять «зависимого»
Видимость: определяется конкретикой реализации

Слайд 21Использование


Слайд 22Использование
Мощность: определяется реализацией
Направленность: от пользователя к используемому (от клиента к серверу)


Стереотип связи: использование
Видимость: определяется конкретикой реализации, часто локальная
Имена участников: пользователь, используемый (клиент, сервер)

Слайд 23Наследование


Слайд 24Наследование
Мощность — 1:1
Имена участников — базовый класс, производный класс
Направленность — от

потомка к предку
Стереотип связи – являться (is-a)
Видимость: неприменимо, т.к. наследование — отношение между классами, в отношении участвует «один и тот же» объект

Слайд 25Реализация
Классы Circle, Line и Point реализуют интерфейс IShape


Слайд 26Реализация
Связь между классами и интерфейсами
Мощность — 1:1
Имена участников — реализующий класс,

интерфейс
Направленность — от реализующего класса к интерфейсу
Стереотип связи — реализация (is-a, реализуем поведение)

Слайд 27Агрегация


Слайд 28Агрегация
Агрегация — связь между объектами
Мощность, Имена участников, Направленность — определяются контекстом
Стереотип

связи — также определяется контекстом, например, «владение», «быть частью»
Видимость: поля класса

Слайд 29Композиция


Слайд 30Композиция
Композиция – связь между объектами
Мощность, Имена участников, Направленность - определяются контекстом
Стереотип

связи – «быть частью», «part-of»
Видимость: поля класса

Слайд 31Класс-
ассоциация


Слайд 32Класс-ассоциация


Слайд 33Класс-ассоциация: альтернативная интерпретация


Слайд 34Класс-ассоциация
Имена участников, направленность, мощность: определяется конкретикой задачи
Стереотип связи: «класс-ассоциация» - дополнительная

информация, которая характеризует связь
Видимость: поля класса

Слайд 35Конкретизация


Слайд 36Конкретизация
Отношение между классами
Мощность 1:1
Имена участников: клас-щаблон (параметризованный класс), конкретный (конкретизованный) класс
Стереотип

связи: «конкретизация» -
конкретизируем класс подставляя вместо классов-параметров конкретные классы
Видимость: неприменимо

Слайд 37Задача: для всех объектов внутри контейнера проделать некую операцию.
Варианты:

Сделать реализацию публичной
Предоставить

обратный вызов для обработки

Перебор объектов


Слайд 38Перебор объектов в контейнере
Довольно просто, но
Немного, хм…, необычно


Слайд 39Итераторы — объекты для перебора объектов


Слайд 40Итераторы


Слайд 41Итератор для стека


Слайд 42Итератор для стека
Обычный цикл, но
- …
Странноватая инициализация
Нужно писать итератор


Слайд 43Итератор для стека


Слайд 44Больше магии!
yield break yield return
Единственный минус — необходимость писать итератор


Слайд 46foreach и IEnumerable
Для того, чтобы использовать Ваш класс в конструкции foreach

необходимо реализовать интерфейс IEnumerable
Конструкция yield return позволяет синхронизировать цикл обработки и перебор элементов, не нарушая инкапсуляции и не усложняя код
Конструкция yield break заканчивает перебор
Метод, в котором используются эти конструкции должен возвращать IEnumerable или IEnumerator


Слайд 47Спасибо за внимание. Вопросы?


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

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

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика