2022-05-02 23:50:59
#ООП-1
Многие начинают изучение ООП с попытки понять 3 столпа, на которых ООП существует: инкапсуляция, наследование, полиморфизм. Сходу, не понимания базовой концепции, человек пугается сложных терминов, забывает про классы и идет дальше гордо фигачить "функциональный" код, который, кстати, не по-настоящему функциональный.
Поэтому начнем с того, зачем оно (ООП) вообще надо. Программирование в целом — это про работу с данными: обработка, хранение, перемещение, удаление. 40 лет назад кодеры писали линейно-функциональный код и всё было нормально: создавали функции и методы, которые что-то принимали, меняли и отдавали. Что ж случилось? А случилась большая проблема: поддерживать десятки и сотни тысяч строк кода в таком стиле очень тяжело, потому что сложно увидеть всю цепочку работы с данными (что, куда, откуда передается, а главное — зачем?), да и вообще — функциональное программирование — это попытка человека научиться говорить на алгоритмическом языке (языке компьютера) что тяжело и порой мозг изрядно закипает. И тут появилось ООП.
ООП — объектное программирование, цель которого решить проблему перемещения
объектов в код, заставить компьютер заговорить на человеческом языке. Что такое объект?
Объект — некая сущность реального мира (пульт от телевизора, автомобиль, ноутбук...), которая имеет свойства и поведение, ей характерное. Так вот
ООП — это удачная попытка перенести привычные нам объекты в программный код, в классы.
Класс — это некоторый шаблон, к примеру, смартфон.
Класс (шаблон) смартфона
описывает некоторые общие черты: наличие экрана, кнопки питания, аккумулятор, процессор... И каждый смартфон имеет схожую функциональность: звонки, выход в интернет, определение геолокации...
Мы можем создать бесконечное количество объектов класса смартфон, напичковать их уникальными свойствами и наладить взаимодействие между этими объектами. Никаких параллелей с реальной жизнью не находите?)
Теперь кратенько: есть объект реального мира, его нужно перевести в код. Создаем
класс, то есть шаблон, трафарет, на основе которого будем создавать
объекты, уже наделенные конкретными свойствами и поведением. Далее налаживаем работу и взаимодействие между объектами, и живем в шоколаде. В следующем посте создадим первый шаблон и первые инстансы (объекты) нашего класса.
Жду фидбек по статье в комментах (полностью авторская=))
48 viewsedited 20:50