ООП использует "проблемно-ориентированный" подход к программированию , в отличие от традиционного "машинно-ориентированного" подхода, используемого в таких языках, как C и Pascal. Изучение ООП может быть довольно сложным, если вы интенсивно программируете на процедурных / функциональных языках. Именно с этими программистами вещи, как правило, более запутаны. Если вы новичок в программировании, вы, вероятно, найдете вещи гораздо менее запутанными, поскольку начинаете со свежего ума.
Сказав это, я видел много программистов, которые много работали с такими языками, как Java, и утверждают, что они хорошие программисты ООП, хотя на самом деле они далеки от этого. Конечно, они используют функции языка Java, такие как интерфейсы, наследование и т. Д., И создают объекты «которые являются экземплярами классов» и «отправляют сообщение объекту». Большинство людей используют много жаргонного выражения, потому что они подвержены этому. Но когда дело доходит до написания простого приложения, их результирующий код демонстрирует их плохое понимание.
Мой вам совет: не поддавайтесь использованию одного жаргона. Вопрос и усердно изучать основные понятия. У вас может быть ваша первая полунирвана (как я), когда вы изучаете полиморфизм и преимущества, которые он приносит для повторного использования кода. Еще одна полунирвана, когда вы понимаете компромисс между повторным использованием через наследование и повторным использованием через композицию. В конце концов, вы будете знать, что хорошо понимаете ООП, если умеете хорошо проектировать, или, скорее, хороший ОО-проект - это просто показатель того, насколько хорошо вы понимаете ООП.
Если вы серьезно относитесь к ООП, вам следует прочитать первые две главы книги GOF по шаблонам проектирования . Это может быть немного сложно для новых программистов, но это лежит в основе мышления ООП. Эта книга - важный справочник, который должен иметь любой серьезный программист ООП. Если вы хорошо понимаете концепции, изложенные в этой книге, считайте себя хорошим программистом ОО.