Другие языки программирования и технологии

Что такое объектно-ориентированное програмирование? И зачем оно нужно, куда используют?..

Квр Мсх Рк
Квр Мсх Рк
605
Были данные и функции их обрабатывающие.
Было это удобно пока функций и данных было мало.
Когда их стало много люди начали путаться.
Было решено хранить функции и их данные вместе.
Назвали это объектами.

Оказалось это удобно, но люди опять путались, не туда лазали и всё ломали.
Тогда было решено прятать часть функций и данных, чтоб народ в них не путался.
Назвали это инкапсуляцией.

Народ всё так же путался, когда для похожих действий использовались разные функции.
Тогда позволили писать похожие функции для одинаковых действий.
Назвали это полиморфизмом.

Народ вроде и перестал путаться, но если вдруг поменять чего надо было, начинался хаос.
Разрешили тогда повторяющиеся части не писать снова и снова, а раз написать и где надо упоминать, как отчество.
Вот когда поменять чего понадобится теперь можно будет в одном месте поменять и всюду поменяется.
Назвали это наследованием.

А потом совсем народ обнаглел и пошло поехало, делегаты объявилися, паттернов понавезли, страх и ужас.
Ярослав Бигун
Ярослав Бигун
44 389
Лучший ответ
Это когда ты на чистом окне рисуешь кнопочки, менюшки красивые, а потом по ним щелкаешь мышью и пишешь программный код

ясно?
Квр Мсх Рк Это для этого бумага в точечку, да?.. ^^
Егор Сидоров Вообще мимо кассы.
На википедии написано следующее: В центре ООП находится понятие объекта. Объект — это сущность, которой можно посылать сообщения и которая может на них реагировать, используя свои данные. Объект — это экземпляр класса.

Если суть ООП не стала более понятной, то могу привести пример из своей практики:
Вы пишете скрипт на cmd и на powershell и работаете с датами.
В случае с cmd вы можете сформировать дату и время в каком-то формате и вывести их например так
set datetime=%date:~6,4%-%date:~3,2%-%date:~0,2%_%time:~0,2%-%time:~3,2%-%time:~6,2%
echo %datetime%
Но! Вы работаете с этими данными как с текстом. Чем это плохо? представим, что вы ходите прибавить к текущей дате 14 дней, вам придется писать сложную программу, которая сделает проверку и, если через 14 дней наступит следующий месяц или год, все это рассчитает и выведет не 32 марта, а 1 апреля))
Теперь возьмем powershell
$date = get-date
$date.AddDays(14)
мы прибавили 14 дней, и при этом мы работаем с объектом, а не с текстом, поэтому нам не нужно разбирать строку с помощью регулярных выражений, а достаточно просто применить метод "AddDays".

Вот, собственно, в этом и заключается удобство объектов, у них есть методы, свойства и т. д.
Кстати вот в этом моменте ("$date = get-date") я создал экземпляр класса "DateTime" и это и есть объект.
Алексей Ов Не очень удачный пример, но +

Похожие вопросы