¿Cuál es la manera más efectiva de aprender POO (Programación Orientada a Objetos)?

Pregunta original:

¿Cuál es la manera más efectiva de aprender POO (Programación Orientada a Objetos)?

Responder:

La forma más efectiva de aprenderlo es usarlo. Romperlo a la forma más simplista. En lugar de tratar todos los aspectos de la POO, use un aspecto. Una vez que tenga cada aspecto hacia abajo, trabaje con dos aspectos. Repita hasta que pueda usar todos los aspectos de la POO de manera cohesiva en un proyecto.
Ha pasado tanto tiempo desde la última vez que tuve que explicar la OOP que no puedo recordar la manera más elocuente de explicarlo con tristeza.

Sin embargo, no temas las grandes palabras. Herencia, polimorfismo, encapsulación y abstracción

Herencia. Piensa cuando usas algo como:

clase pública ChildClass extiende BaseClass {

Esto es herencia.
———————————————————

Polimorfismo. Las subclases de una clase pueden definir sus propios comportamientos únicos y, sin embargo, compartir algunas de las mismas funcionalidades de la clase principal.

Esto utiliza la herencia y básicamente agrega nuevos métodos a la clase que no están en la clase base.

———————————————————

Encapsulacion Un mecanismo de envolver los datos (variables) y el código que actúa sobre los datos (métodos) juntos como una sola unidad.

Piense en ello como hacer que sus métodos y variables sean privados en una sola clase a menos que NECESITEN ser públicos.


Abstracción. Esto es sencillo y simple. Evita que las cosas estén bien acopladas. Solo una clase necesita saber exactamente cuál es el tipo de datos específicamente. Y eso es generalmente la clase de lectura o su punto de entrada principal.

// este código fue copiado directamente de tutorialspoint
Empleado público de clase abstracta
nombre de la cadena privada;
dirección de cadena privada;
número de int privado;

Empleado público (nombre de la cadena, dirección de la cadena, número int) {
System.out.println (“Construyendo un empleado”);
this.name = nombre;
this.address = dirección;
this.number = número;
}

público computePay doble () {
System.out.println (“Inside Employee computePay”);
retorno 0.0;
}

correo público vacío Verificar () {
System.out.println (“Enviar un cheque a” + this.name + “” + this.address);
}

cadena pública a la cadena () {
devolver el nombre + “” + dirección + “” + número;
}

Cadena pública getName () {
nombre de retorno
}

Cadena pública getAddress () {
dirección del remitente;
}

public void setAddress (String newAddress) {
dirección = newAddress;
}

public int getNumber () {
número de retorno;
}
}

Cada sección individual se puede leer en más información en Java Abstraction

En cuanto a un tutorial sobre OOP en su conjunto. Aquí hay algunos enlaces útiles para usted.

Tutorial de Programación Java
Tutorial de Java para principiantes
http://beginnersbook.com/java-tutorial-for-beginners-with-examples/
http://docs.oracle.com/javase/tutorial/java/concepts/QandE/questions.html
http://sepwww.stanford.edu/sep/jon/family/jos/oop/oop1.htm

Espero que esto haya ayudado. No temas la OOP.

Comience con Smalltalk: vea la respuesta de Richard Kenneth Eng a ¿Cuál es el lenguaje de programación más fácil, mejor y más simple de aprender?

El problema es que la implementación OOP de Java es innecesariamente complicada para los principiantes. Smalltalk es absolutamente, y sin lugar a dudas, la forma más fácil y mejor de aprender OOP.

Una vez que aprenda la POO de la manera correcta, puede pasar a lenguajes como Java y C ++. No hagas que aprender OOP sea más difícil de lo que tiene que ser.

Honestamente, en mi opinión, la mejor manera de aprender Java, o cualquier otro idioma, es a través de la aplicación: tratar de codificar un juego, etc. No creo que leer un libro o un sitio web y tratar de entender / aprender de él sea la mejor manera. Dicho esto, hay varios videos tutoriales en YouTube que son excelentes recursos para principiantes como los videos de The NewBoston. También recomendaría el libro: Java para Dummies. Pasa por lo más básico, como configurar el entorno y tiene muchos ejemplos.

¡Aclamaciones!

Visualiza las cosas que estás codificando.