Переход от процедурного подхода к объектно-ориентированному
Переход от процедурного подхода к ООП
Пока в процедурном программировании…
Все еще в процедурном программировании…
Все еще в процедурном программировании…
Структуры в процедурной (структурной) парадигме
Структуры в процедурной (структурной) парадигме
Структуры в процедурной (структурной) парадигме
Начинаем переходить к ООП
Начинаем переходить к ООП
Пример внедрения ООП в код
Пример внедрения ООП в код
Пример внедрения ООП в код
Пример внедрения ООП в код
Пример непонимания ООП
Пример непонимания ООП
Пример простейшего объекта
Класс на C++
Класс на C++
Тот же класс на Java
И опять этот же класс, но на C#
480.19K
Category: programmingprogramming

Переход от процедурного подхода к объектно-ориентированному

1. Переход от процедурного подхода к объектно-ориентированному

1.
2.
3.
4.
Процедурный и объектно-ориентированный подходы
Пример перехода от процедурного стиля к ООП
Примеры непонимания ООП
Пример создания классов в разных ОО-языках
Преподаватель:
Ботов Дмитрий Сергеевич
1

2. Переход от процедурного подхода к ООП

2

3. Пока в процедурном программировании…

Шаг 0. Всё в одной функции
3

4. Все еще в процедурном программировании…

Шаг 1. Вынесение дублирующегося кода в функцию
4

5. Все еще в процедурном программировании…

Шаг 1. Использование функции
5

6. Структуры в процедурной (структурной) парадигме

Шаг 2. Выделение структуры и использование в качестве
параметров функции
6

7. Структуры в процедурной (структурной) парадигме

Шаг 3. Выделение структуры и использование в
качестве параметров функции
7

8. Структуры в процедурной (структурной) парадигме

Шаг 3. Использование структуры
8

9. Начинаем переходить к ООП

Шаг 4. Переход к классам: объединение данных
и операций над ними
9

10. Начинаем переходить к ООП

Шаг 4. Реализация класса Point
10

11. Пример внедрения ООП в код

Шаг 4. Использование возможностей класса
11

12. Пример внедрения ООП в код

Шаг 5. Использование классов в качестве основы других классов
12

13. Пример внедрения ООП в код

Шаг 5. Реализация класса Triangle
13

14. Пример внедрения ООП в код

Шаг 5. Использование класса Triangle
14

15. Пример непонимания ООП

Не делайте так:
Использование примитивных типов вместо
созданных классов
15

16. Пример непонимания ООП

Не делайте так:
Передача состояния объекта через параметры
методов: непонимание связи состояния и
поведения объекта
16

17. Пример простейшего объекта

17

18. Класс на C++

// объявление класса
class Box
{
private:
int _width;
int _height;
int _length;
public:
Box(int width, int height, int length);
int getVolume();
void printBox();
}
18

19. Класс на C++

// определение конструктора и методов класса
Box::Box(int width, int height, int 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());
}
19

20. Тот же класс на Java

public class Box {
private int _width;
private int _height;
private 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());
}
}
20

21. И опять этот же класс, но на C#

public class Box {
private int _width;
private int _height;
private 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() {
Console.Write(“Box: ”+ _width + _height + _length);
Console.WriteLine(“Volume = ” + getVolume());
}
}
21
English     Русский Rules