Слайд 2
![Причины возникновения объектно-ориентированного программирования](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-1.jpg)
Причины возникновения объектно-ориентированного программирования
Слайд 3
![С ростом объема кода программы становится невозможным удерживать в памяти все детали](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-2.jpg)
С ростом объема кода программы становится невозможным удерживать в памяти все
детали
Слайд 4
![Необходимо структурировать информацию, выделять главное и отбрасывать несущественное](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-3.jpg)
Необходимо структурировать информацию, выделять главное и отбрасывать несущественное
Слайд 5
![Этот процесс называется повышением степени абстракции программы](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-4.jpg)
Этот процесс называется повышением степени абстракции программы
Слайд 6
![Первым шагом к повышению абстракции является использование функций](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-5.jpg)
Первым шагом к повышению абстракции является использование функций
Слайд 7
![Это позволяет отвлечься от деталей ее реализации, поскольку для вызова функции требуется знать только ее интерфейс](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-6.jpg)
Это позволяет отвлечься от деталей ее реализации, поскольку для вызова функции
требуется знать только ее интерфейс
Слайд 8
![Следующий шаг — описание собственных типов данных, позволяющих структурировать и группировать информацию](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-7.jpg)
Следующий шаг — описание собственных типов данных, позволяющих структурировать и группировать
информацию
Слайд 9
![Процедурное программирование – подход, при котором функции и переменные, относящиеся](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-8.jpg)
Процедурное программирование –
подход, при котором функции и переменные, относящиеся к какому-то
конкретному объекту свободно располагаются в коде и никак между собой не связаны
Слайд 10
![Объектно-ориентированное программирование – подход, при котором функции и переменные, относящиеся](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-9.jpg)
Объектно-ориентированное программирование –
подход, при котором функции и переменные, относящиеся к
конкретному объекту объединены в коде определенным образом и тесно связаны между собой
Слайд 11
![В мире ООП всё состоит из объектов](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-10.jpg)
В мире ООП всё состоит из объектов
Слайд 12
![Программа представляет собой набор объектов, имеющих состояние и поведение](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-11.jpg)
Программа представляет собой набор объектов, имеющих состояние и поведение
Слайд 13
![Концепция «черного ящика» является одной из базовых концепций ООП](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-12.jpg)
Концепция «черного ящика» является одной из базовых концепций ООП
Слайд 14
![Снаружи объект принято рассматривать как «черный ящик», т.е. некий прибор с кнопками](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-13.jpg)
Снаружи объект принято рассматривать как «черный ящик», т.е. некий прибор с
кнопками
Слайд 15
![Благодаря тому, что программа представляется в терминах поведения объектов, при](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-14.jpg)
Благодаря тому, что программа представляется в терминах поведения объектов, при программировании
используются понятия, более близкие к предметной области
Слайд 16
![Следовательно, программа легче читается и понимается](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-15.jpg)
Следовательно, программа легче читается и понимается
Слайд 17
![ООП – это стиль программирования, который фиксирует поведение реального мира так, что детали разработки скрыты](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-16.jpg)
ООП – это стиль программирования, который фиксирует поведение реального мира так,
что детали разработки скрыты
Слайд 18
![Это позволяет программисту мыслить в терминах предметной области, а не в терминах программирования](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-17.jpg)
Это позволяет программисту мыслить в терминах предметной области, а не в
терминах программирования
Слайд 19
![Основные понятия ООП Инкапсуляция Наследование Полифорфизм](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-18.jpg)
Основные понятия ООП
Инкапсуляция
Наследование
Полифорфизм
Слайд 20
![Инкапсуляция – это объединение полей и методов объекта в единое целое - класс](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-19.jpg)
Инкапсуляция –
это объединение полей и методов объекта в единое целое
- класс
Слайд 21
![Важнейшее требование инкапсуляции - скрытие состояния объекта от внешнего мира](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-20.jpg)
Важнейшее требование инкапсуляции - скрытие состояния объекта от внешнего мира
Слайд 22
![Инкапсуляция повышает степень абстракции программы: данные класса и реализация методов](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-21.jpg)
Инкапсуляция повышает степень абстракции программы: данные класса и реализация методов класса
находятся ниже уровня абстракции, и для написания программы информация о них не требуется
Слайд 23
![Инкапсуляция позволяет изменить реализацию класса без модификации основной части программы, если интерфейс остался прежним](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-22.jpg)
Инкапсуляция позволяет изменить реализацию класса без модификации основной части программы, если
интерфейс остался прежним
Слайд 24
![Наследование – это механизм, который позволяет расширять существующие классы, сохраняя](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-23.jpg)
Наследование –
это механизм, который позволяет расширять существующие классы, сохраняя их
функциональность и добавляя им новые свойства и методы
Слайд 25
![Полиморфизм – это возможность использовать в различных классах иерархии одно](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-24.jpg)
Полиморфизм –
это возможность использовать в различных классах иерархии одно название
для обозначения сходных по смыслу действий и гибко выбирать требуемое действие во время выполнения программы
Слайд 26
![Главный принцип полиморфизма – один интерфейс и множество реализаций](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-25.jpg)
Главный принцип полиморфизма –
один интерфейс и множество реализаций
Слайд 27
![Класс - общее абстрактное описание некоторой сущности](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-26.jpg)
Класс - общее абстрактное описание некоторой сущности
Слайд 28
![Синтаксис объявления класса class имя_класса { [private | protected |](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-27.jpg)
Синтаксис объявления класса
class имя_класса
{
[private | protected | public]:
тип_поля1 имя_поля1;
тип_поля2
имя_поля2;
тип_поля3 имя_поля3;
...
тип1 имя_метода1(список_параметров)
{
...
}
тип2 имя_метода2(список_параметров)
{
...
}
...
} [список_переменных];
Слайд 29
![Способы доступа к компонентам класса Открытый (public) Защищенный (protected) Закрытый (private)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-28.jpg)
Способы доступа к компонентам класса
Открытый (public)
Защищенный (protected)
Закрытый (private)
Слайд 30
![Пример объявления класса](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-29.jpg)
Слайд 31
![Объект как экземпляр класса – это некоторая уникальная единица, имеющая](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-30.jpg)
Объект как экземпляр класса –
это некоторая уникальная единица, имеющая свои
переменные (поля) и функции (методы), эти переменные обрабатывающие
Слайд 32
![Поля объекта - это переменные, описывающие его состояние, а методы](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-31.jpg)
Поля объекта - это переменные, описывающие его состояние, а методы -
это способ перевести объект из одного состояния в другое
Слайд 33
![Пример создания объекта класса](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-32.jpg)
Пример создания объекта класса
Слайд 34
![Методы-аксессоры Инспекторы позволяют получить значения полей Модификаторы позволяют установить значения полей](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-33.jpg)
Методы-аксессоры
Инспекторы позволяют получить значения полей
Модификаторы позволяют установить значения полей
Слайд 35
![Методы-аксессоры](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-34.jpg)
Слайд 36
![Конструктор - это специальный метод класса, который вызывается для конструирования объекта в момент его создания](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-35.jpg)
Конструктор -
это специальный метод класса, который вызывается для конструирования объекта
в момент его создания
Слайд 37
![Конструктор не возвращает значение, даже типа void](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-36.jpg)
Конструктор не возвращает значение, даже типа void
Слайд 38
![Класс может иметь несколько конструкторов с разными параметрами для разных видов инициализации](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-37.jpg)
Класс может иметь несколько конструкторов с разными параметрами для разных видов
инициализации
Слайд 39
![Конструктор, вызываемый без параметров, называется конструктором по умолчанию](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-38.jpg)
Конструктор, вызываемый без параметров, называется конструктором по умолчанию
Слайд 40
![Параметры конструктора могут иметь любой тип, кроме этого же класса](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-39.jpg)
Параметры конструктора могут иметь любой тип, кроме этого же класса
Слайд 41
![Если программист не указал ни одного конструктора, компилятор создаст его автоматически](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-40.jpg)
Если программист не указал ни одного конструктора, компилятор создаст его автоматически
Слайд 42
![Деструктор – это специальный метод класса, который вызывается при уничтожении объекта](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-41.jpg)
Деструктор –
это специальный метод класса, который вызывается при уничтожении объекта
Слайд 43
![Деструктор не принимает никаких параметров и не возвращает значений](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-42.jpg)
Деструктор не принимает никаких параметров и не возвращает значений
Слайд 44
![Класс может иметь только один деструктор](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/246967/slide-43.jpg)
Класс может иметь только один деструктор