OOP adopta un enfoque "orientado a problemas" para la programación frente a el enfoque tradicional "orientado a la máquina" utilizado en idiomas como C y Pascal. Aprender OOP puede ser bastante difícil si ha programado extensamente en los lenguajes de procedimiento/funcionales. Es a estos programadores que las cosas tienden a ser más confusas. Si eres nuevo en la programación, probablemente encontrarás cosas mucho menos confusas ya que estás comenzando con una mente fresca.
Dicho esto, he visto muchos programadores que han trabajado extensamente con lenguajes como Java y dicen ser buenos programadores de POO cuando en realidad eran ni mucho menos. Claro que usan funciones de lenguaje Java como interfaces, herencia, etc., y crean objetos "que son instancias de clases" y "envían un mensaje a un objeto". La mayoría de las personas usa mucha jerga OOP porque están expuestas a ella. Pero cuando se trata de escribir una aplicación simple, el código resultante expone su pobre comprensión.
Mi consejo es que no se deje atrapar por el uso de la jerga solo. Pregunta y aprende los conceptos subyacentes diligentemente. Es posible que tenga su primer semi-nirvana (como yo) cuando aprenda polimorfismo y los beneficios que aporta a la reutilización del código. Otro semi-nirvana cuando comprendes las compensaciones entre la reutilización a través de la herencia y la reutilización a través de la composición. Al final, sabrá que ha entendido bien el OOP si puede diseñar bien, o mejor dicho, un buen diseño de OO es una buena medida de qué tan bien entiende el OOP.
Si usted es serio sobre la programación orientada a objetos, usted debe leer los dos primeros capítulos de la GOF book on Design Patterns. Puede ser un poco difícil para los nuevos programadores, pero establece el quid del pensamiento detrás de OOP. Este libro es una referencia importante que cualquier programador OOP debe tener. Si entiende bien los conceptos de este libro, considérese un buen programador OO.
Podría explicar con más detalle lo que se encuentra confuso? – Rik
+1 a Rik. ¿Podrías decirnos más? –
¿Cuál es la idea principal en OOP y por qué le resulta confuso? Para mí, es "las clases deben ser los únicos módulos" y no es confuso. –