Вы когда-нибудь видели как ремонтируют машину? Нет? Ну тогда я сейчас вам об'ясню...
Машина не работает - это факт который не устраивает хозяина, но в полне устраивает мастера, ибо это его хлеб. Вот он подходит, не спеша заглядывает во все места, причмокивает и ставит диагноз - не работает,мол потому что у тебя тут ... <несколько сальных словечек отрицательного содержания>, а должно быть ... <несколько сальных словечек, но уже положительной направленности>. Хозяин несчастной машины, чешет репу и переводит все выше сказанное в понятные ему величины, а иммено в деньги и время ожидания... Как правило в голове у мастера решения сводятся к двум вариантам: либо вырываем и выкидываем эту хреновину, а вместо нее вставляем новую, либо вскрываем и лезем внутрь, но гарантии никакой... Выбирай!...
Что знакомо-понятная ситуация? Ну может не совсем, ибо смотреть на нее вы должны глазами мастера. Вы мастер-программист. Вы бизнес делаете... Так давайте посмотрим, что нам выгодно. Итак...
Если открывать этот блок, то перед нами встанут задачи как то, вытащить эту фиговину на свет божий, отыскать проблему внутри, достаточно трудоемкой операцией усторонить не исправность, отладить, собрать, и в довершении всего установить обратно... А если менять целиком? Ну так только два действия: выташил старый, да вставил новый... В первом случае трудоемко, во втором нет... В первом голову ломать, что да как, во втором нет... Первый возьмет гораздо больше времени... Конечно за каждую операцию в первом варианте, можно денег дополнительно потребовать, но не много, так как если стоимость труда приблизится к стоимости новой детали, то клиент не задумываясь скажет: «Новую...» А за то если сразу новую вставить, то за сэкономленное время можно еще одному чудику что-нибудь сменить... Вот и считай в голове, а потом убеди хозяина, что самый лучший вариант для него тот, что ты для себя выбрал за такое-то время, при такой-то цене...
Пожалуй многие согласяться, что вариант замены блоков целиком, наиболее удачен для мастера. Но и для хозяина машины это достаточно удобный вариант тем, что он быстрей... Оглядитесь вокруг... Из готовых заготовок собираются машины, станки, дома, телевизоры... Все... Взяли кучку готовых блоков-коробочек, аккуратно следуя инструкции соеденили их вместе по их свойствам методам и готово... вот он лежит приборчик... Купить не желаете?
Подобный блочный взгляд на вещи не обошел стороной и программирование... Вот только блоки наши называются об'ектами и в руках их повертеть нельзя, только увидеть на экране, а некоторые и увидеть нельзя... Но суть-то таже! Просто блоки коробочки воображаемые, да называются об'ектами, и плевать что мы не знаем как они устроенны внутри, мы знаем как они работают... А если их аккуратно по их свойствам методам соединить, следуя инструкции... то вот она программка... Купить не желаете?
Потому то и называется наше программирование об'ектно-ореинтированным, так как ориентираванно оно на работу с об'ектами , воображаемыми блоками коробочками, которые были созданы какими-то хорошими и умными дядями, чтоб мы теперь могли работать, и не думать о "мелочах"...