Слайд 2Переход от процедурного подхода к ООП
![Переход от процедурного подхода к ООП](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/926411/slide-1.jpg)
Слайд 3Пока в процедурном программировании…
Шаг 0. Всё в одной функции
![Пока в процедурном программировании… Шаг 0. Всё в одной функции](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/926411/slide-2.jpg)
Слайд 4Все еще в процедурном программировании…
Шаг 1. Вынесение дублирующегося кода в функцию
![Все еще в процедурном программировании… Шаг 1. Вынесение дублирующегося кода в функцию](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/926411/slide-3.jpg)
Слайд 5Все еще в процедурном программировании…
Шаг 1. Использование функции
![Все еще в процедурном программировании… Шаг 1. Использование функции](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/926411/slide-4.jpg)
Слайд 6Структуры в процедурной (структурной) парадигме
Шаг 2. Выделение структуры и использование в качестве
![Структуры в процедурной (структурной) парадигме Шаг 2. Выделение структуры и использование в качестве параметров функции](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/926411/slide-5.jpg)
параметров функции
Слайд 7Структуры в процедурной (структурной) парадигме
Шаг 3. Выделение структуры и использование в качестве
![Структуры в процедурной (структурной) парадигме Шаг 3. Выделение структуры и использование в качестве параметров функции](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/926411/slide-6.jpg)
параметров функции
Слайд 8Структуры в процедурной (структурной) парадигме
Шаг 3. Использование структуры
![Структуры в процедурной (структурной) парадигме Шаг 3. Использование структуры](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/926411/slide-7.jpg)
Слайд 9Начинаем переходить к ООП
Шаг 4. Переход к классам: объединение данных
и операций
![Начинаем переходить к ООП Шаг 4. Переход к классам: объединение данных и операций над ними](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/926411/slide-8.jpg)
над ними
Слайд 10Начинаем переходить к ООП
Шаг 4. Реализация класса Point
![Начинаем переходить к ООП Шаг 4. Реализация класса Point](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/926411/slide-9.jpg)
Слайд 11Пример внедрения ООП в код
Шаг 4. Использование возможностей класса
![Пример внедрения ООП в код Шаг 4. Использование возможностей класса](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/926411/slide-10.jpg)
Слайд 12Пример внедрения ООП в код
Шаг 5. Использование классов в качестве основы других
![Пример внедрения ООП в код Шаг 5. Использование классов в качестве основы других классов](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/926411/slide-11.jpg)
классов
Слайд 13Пример внедрения ООП в код
Шаг 5. Реализация класса Triangle
![Пример внедрения ООП в код Шаг 5. Реализация класса Triangle](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/926411/slide-12.jpg)
Слайд 14Пример внедрения ООП в код
Шаг 5. Использование класса Triangle
![Пример внедрения ООП в код Шаг 5. Использование класса Triangle](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/926411/slide-13.jpg)
Слайд 15Пример непонимания ООП
Не делайте так:
Использование примитивных типов вместо созданных классов
![Пример непонимания ООП Не делайте так: Использование примитивных типов вместо созданных классов](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/926411/slide-14.jpg)
Слайд 16Пример непонимания ООП
Не делайте так:
Передача состояния объекта через параметры методов: непонимание связи
![Пример непонимания ООП Не делайте так: Передача состояния объекта через параметры методов:](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/926411/slide-15.jpg)
состояния и поведения объекта
Слайд 18Класс на C++
// объявление класса
class Box
{
private:
int _width;
int _height;
int _length;
public:
Box(int
![Класс на C++ // объявление класса class Box { private: int _width;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/926411/slide-17.jpg)
width, int height, int length);
int getVolume();
void printBox();
}
Слайд 19Класс на C++
// определение конструктора и методов класса
Box::Box(int width, int height, int
![Класс на C++ // определение конструктора и методов класса Box::Box(int width, int](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/926411/slide-18.jpg)
length)
{
_width = width;
_height = height;
_length = length;
}
int Box::getVolume()
{
return _width * _height * _length;
}
void Box::printBox()
{
printf(“Box: %d %d %d ”, _width, _height, _length);
printf(“Volume = %d\n”, getVolume());
}
Слайд 20Тот же класс на Java
public class Box {
private int _width;
private int _height;
private
![Тот же класс на Java public class Box { private int _width;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/926411/slide-19.jpg)
int _length;
public Box(int width, int height, int length) {
_width = width;
_height = height;
_length = length;
}
public int getVolume() {
return _width * _height * _length;
}
public void printBox() {
System.out.print(“Box: ”+ _width + _height + _length);
System.out.println(“Volume = ” + getVolume());
}
}