[ Foro de Java ]

Sobre la POO

09-Sep-2014 20:30
Luis Torres (+18)
5 Respuestas

Hola,

  Necesito aprender POO, pero no lo básico, sino a ejercitarme y lograr un nivel medio o avanzado dentro de este paradigma. Necesito aprender a lograr un pensamiento que me permita resolver problemas utilizando clases, objetos, métodos, atributos, herencias y demás conceptos.

   ¿Qué libro me pueden recomendar para lograr mi cometido? Debe tener prácticas incluidas.

Saludos.


09-Sep-2014 23:37
oscar gomez

Hola luis, estoy realizando un curso al nivel que me mencionas, si gustas escribeme a mi correo espero que aun lo conserves, haciamos buen equipo lo recuerdo , no dudes en escribirme que como en aquella epoca se que podre aportarte en el acometido que pretendes, un saludo.


11-Sep-2014 15:39
Nacho Cabanes (+83)

Luis, puede sonar a "autopropaganda", y más cuando se trata de un apartado que está redactado pero no revisado (todavía, porque ahora es prioritario revisar los apuntes de C# para mis alumnos)... pero en estas mismas páginas tienes esto:

http://www.aprendeaprogramar.com/mod/resource/view.php?id=212



11-Sep-2014 20:49
Luis Torres (+18)

Muchas gracias.


Tengo una duda que vengo arrastrando desde hace tiempo, ojalá Usted pueda aclarármela.
En la línea:


 Secundaria s = new Secundaria();


¿Cuál es la diferencia entre definir un objeto (Secundaria s) y, crearlo (s=new Secundaria())?

Cuando trabajamos en programación estructurada y modular, y yo hago:


i: integer; 


Estoy definiendo y creando la variable "i", ¿no es así?

¿Es "s" un puntero al objeto Secundaria?, ¿podría trabajar con el objeto "s" sin haber colocado "s=new Secundaria()"?


Saludos.


12-Sep-2014 14:54
Nacho Cabanes (+83)

Cuando haces "int i", la variable "i" está declarada. Al ser de un tipo básico del sistema, puedes empezar a trabajar con ella (guardar un valor, leerlo, cambiarlo...)

Cuando haces "Secundaria s", está declarada, pero es sólo un puntero nulo. Para poder guardar datos en ese objeto (en sus "atributos") o llamar a sus métodos, primero debes hacer "new" para inicializar ese objeto (reservarle espacio en cierta posición de memoria, de modo que ya podrás acceder a sus atributos y sus métodos serán utilizables). Si no lo haces, obtendrás un mensaje de error en compilación, o en ejecución, o incluso se interrumpirá la ejecución con una excepción. Los detalles exactos de cómo fallará dependen de cada lenguaje y de cada tipo de error... pero fallará...


12-Sep-2014 19:06
Luis Torres (+18)

En lenguaje C++ sí es posible declarar una variable de tipo objeto y trabajar con ella. Para trabajar con el método "new", se declara EXPLÍCITAMENTE un puntero a objeto y, luego creo el objeto asignándole memoria con "new".
Pero ya veo que siempre que haga lo siguiente, en java:
Secundaria s;  // en realidad estoy declarando un puntero.

En Lenguaje C++ sería:
Secundaria *s;   // como antes mencioné

Gracias por la explicación y, muchos saludos.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)