Слайд 2
![Объекты две цели: понимание прикладной задачи (проблемы); введение основы для реализации на компьютере.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-1.jpg)
Объекты
две цели:
понимание прикладной задачи (проблемы);
введение основы для реализации на компьютере.
Слайд 3
![Объекты Объект - это мыслимая или реальная сущность, обладающая характерным](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-2.jpg)
Объекты
Объект - это мыслимая или реальная сущность, обладающая характерным поведением и
отличительными характеристиками и являющаяся важной в предметной области.
Слайд 4
![Объект класса Атрибуты: Цвет Мощность Количество дверей Номер автомобиля Функции (методы): Вождение Торможение Заправка](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-3.jpg)
Объект класса
Атрибуты:
Цвет
Мощность
Количество дверей
Номер автомобиля
Функции (методы):
Вождение
Торможение
Заправка
Слайд 5
![Состояние (state) Состояние тесно связано с объектами. Состояние объекта может](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-4.jpg)
Состояние (state)
Состояние тесно связано с объектами.
Состояние объекта может определяться наличием или
отсутствием связей между моделируемым объектом и другими объектами.
Слайд 6
![Состояние (state) Состояние (state) - совокупный результат поведения объекта: одно](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-5.jpg)
Состояние (state)
Состояние (state) - совокупный результат поведения объекта: одно из стабильных
условий, в которых объект может существовать, охарактеризованных количественно;
Слайд 7
![Состояние. Пример Объект человек Объект удочка](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-6.jpg)
Состояние. Пример
Объект человек
Объект удочка
Слайд 8
![Пример в коде](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-7.jpg)
Слайд 9
![Поведение Результат выполнения действий зависит от состояния объекта на момент](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-8.jpg)
Поведение
Результат выполнения действий зависит от состояния объекта на момент совершения действия,
т.е. нельзя, например, удалить файл, если он открыт кем-либо (заблокирован).
Слайд 10
![Поведение Программа, написанная с использованием ООП, обычно состоит из множества](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-9.jpg)
Поведение
Программа, написанная с использованием ООП, обычно состоит из множества объектов, и
все эти объекты взаимодействуют между собой.
Слайд 11
![Уникальность Identity (уникальность) объекта состоит в том, что всегда можно](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-10.jpg)
Уникальность
Identity (уникальность) объекта состоит в том, что всегда можно определить, указывают
две ссылки на один и тот же объект или на разные объекты.
В машинном представлении под параметром уникальности объекта чаще всего понимается адрес размещения объекта в памяти.
Слайд 12
![Классы Все объекты одного и того же класса описываются одинаковыми](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-11.jpg)
Классы
Все объекты одного и того же класса описываются одинаковыми наборами атрибутов.
Однако объединение объектов в классы определяется не наборами атрибутов, а семантикой.
Слайд 13
![Классы Класс — это шаблон поведения объектов определенного типа с](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-12.jpg)
Классы
Класс — это шаблон поведения объектов определенного типа с заданными параметрами,
определяющими состояние. Все экземпляры одного класса (объекты, порожденные от одного класса) имеют один и тот же набор свойств и общее поведение, то есть одинаково реагируют на одинаковые сообщения.
Слайд 14
![Классы Класс — это шаблон поведения объектов определенного типа с](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-13.jpg)
Классы
Класс — это шаблон поведения объектов определенного типа с заданными параметрами,
определяющими состояние. Все экземпляры одного класса (объекты, порожденные от одного класса) имеют один и тот же набор свойств и общее поведение, то есть одинаково реагируют на одинаковые сообщения.
Слайд 15
![Классы. Пример Барсик Белла Борис](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-14.jpg)
Классы. Пример
Барсик
Белла
Борис
Слайд 16
![Классы. Пример Барсик Белла Борис Кошачие](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-15.jpg)
Классы. Пример
Барсик
Белла
Борис
Кошачие
Слайд 17
![Пример класса в коде](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-16.jpg)
Слайд 18
![Икапсуляция Инкапсуляция (encapsulation) - это сокрытие реализации класса и отделение его внутреннего представления от внешнего (интерфейса).](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-17.jpg)
Икапсуляция
Инкапсуляция (encapsulation) - это сокрытие реализации класса и отделение его внутреннего
представления от внешнего (интерфейса).
Слайд 19
![Икапсуляция 1. При использовании объектно-ориентированного подхода не принято применять прямой](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-18.jpg)
Икапсуляция
1. При использовании объектно-ориентированного подхода не принято применять прямой доступ к
свойствам какого-либо класса из методов других классов.
2. Для доступа к свойствам класса принято задействовать специальные методы этого класса для получения и изменения его свойств.
Слайд 20
![Пример (инкапсуляция) Файл интерфейса Файл бэкенда](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-19.jpg)
Пример (инкапсуляция)
Файл интерфейса
Файл бэкенда
Слайд 21
![Пример (инкапсуляция) Файл интерфейса Файл бэкенда](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-20.jpg)
Пример (инкапсуляция)
Файл интерфейса
Файл бэкенда
Слайд 22
![Наследование Наследование (inheritance) - это отношение между классами, при котором](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-21.jpg)
Наследование
Наследование (inheritance) - это отношение между классами, при котором класс использует
структуру или поведение другого класса (одиночное наследование), или других (множественное наследование ) классов.
Слайд 23
![Наследование](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-22.jpg)
Слайд 24
![Наследование Наследование вводит иерархию "общее/частное", в которой подкласс наследует от](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-23.jpg)
Наследование
Наследование вводит иерархию "общее/частное", в которой подкласс наследует от одного или
нескольких более общих суперклассов. Подклассы обычно дополняют или переопределяют унаследованную структуру и поведение.
Слайд 25
![Наследование. Пример](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-24.jpg)
Слайд 26
![Полиморфизм Полиморфизм (polymorphism) - положение теории типов, согласно которому имена](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-25.jpg)
Полиморфизм
Полиморфизм (polymorphism) - положение теории типов, согласно которому имена (например, переменных)
могут обозначать объекты разных (но имеющих общего родителя) классов. Следовательно, любой объект, обозначаемый полиморфным именем, может по-своему реагировать на некий общий набор операций
Слайд 27
![Полиморфизм. Пример](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-26.jpg)
Слайд 28
![Полиморфизм. Пример](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-27.jpg)
Слайд 29
![Полиморфизм. Пример](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-28.jpg)
Слайд 30
![Полиморфизм. Пример](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-29.jpg)
Слайд 31
![Полиморфизм](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-30.jpg)
Слайд 32
![Полиморфизм Процедурный полиморфизм предполагает возможность создания нескольких процедур или функций](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-31.jpg)
Полиморфизм
Процедурный полиморфизм предполагает возможность создания нескольких процедур или функций с одним и тем
же именем, но разным количеством или различными типами передаваемых параметров.
Слайд 33
![Полиморфизм Такие одноименные функции называются перегруженными, а само явление -](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-32.jpg)
Полиморфизм
Такие одноименные функции называются перегруженными, а само явление - перегрузкой (overloading).
Перегрузка функций существует и в ООП и
называется перегрузкой методов.
Слайд 34
![Достоинства ООП Классы позволяют проводить конструирование из полезных компонентов, обладающих](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-33.jpg)
Достоинства ООП
Классы позволяют проводить конструирование из полезных компонентов, обладающих простыми инструментами,
что позволяет абстрагироваться от деталей реализации.
Слайд 35
![Достоинства ООП Данные и операции над ними образуют определенную сущность,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-34.jpg)
Достоинства ООП
Данные и операции над ними образуют определенную сущность, и они
не разносятся по всей программе, как нередко бывает в случае процедурного программирования, а описываются вместе. Локализация кода и данных улучшает наглядность и удобство сопровождения программного обеспечения.
Слайд 36
![Достоинства ООП Инкапсуляция позволяет привнести свойство модульности, что облегчает распараллеливание](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-35.jpg)
Достоинства ООП
Инкапсуляция позволяет привнести свойство модульности, что облегчает распараллеливание выполнения задачи
между несколькими исполнителями и обновление версий отдельных компонентов.
Слайд 37
![Недостатки ООП Сложность в освоении. ООП сложнее, чем функциональное программирование.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-36.jpg)
Недостатки ООП
Сложность в освоении. ООП сложнее, чем функциональное программирование. Для написания
кода в этой парадигме нужно знать гораздо больше. Поэтому перед созданием первой рабочей программы придётся освоить много информации: разобраться в классах и наследовании, научиться писать публичные и внутренние функции, изучить способы взаимодействия объектов между собой.
Слайд 38
![Недостатки ООП Громоздкость. Там, где в функциональном программировании хватит одной](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/578550/slide-37.jpg)
Недостатки ООП
Громоздкость. Там, где в функциональном программировании хватит одной функции, в
ООП нужно создать класс, объект, методы и атрибуты. Для больших программ это плюс, так как структура будет понятной, а для маленьких может оказаться лишней тратой времени.