lunes, 15 de septiembre de 2014

Programacion orientada a objetos (POO)


Ya tocamos el tema de Java y he decidido que nos vamos a tomar esta copa hasta la última gota, pero antes, quiero tocar algunos puntos importantes para que sepas a lo que nos enfrentamos, y es que me entereza mucho plantar esta semilla desde lo más profundo, para tener un gran árbol de buenos y sólidos conocimientos que nos den sombra. (Bien, después de ese inicio tan poético vamos a lo que nos  truje).

En nuestro entorno social podemos notar que existen tendencias que enmarcan el comportamiento de la gente,  estas tendencias muchas veces son tan pronunciadas que pueden llegar a dictar la diferencia entre lo correcto y lo incorrecto; a esto es a lo que llamamos paradigmas, que es esencialmente la manera en la que ves las cosas, la forma en la que ves la vida atreves del lente de tu propia filosofía.

En la programación, los paradigmas son un conjunto de prácticas de desarrollo de software, que son adoptadas por un amplio número de programadores o de lenguajes de programación; es decir, para un problema específico, hay muchas manera de llegar a una solución, todo de pende de cómo quieres llegar resolverlo; un buen ejemplo de esto, es aquella vieja historia del problema de la escritura espacial: Los americanos y los rusos enfrentaron un problema muy singular, en el espacio las plumas fuente no funcionaban, la gravedad que hace que la tinta baje era muy poca, y hacer algo tan simple como escribir se complicaba mucho, los americanos decidieron desarrollar una pluma capas de empujar la tinta hacia la punta con un complejo y costoso mecanismo, por otro lado los rusos decidieron usar un lápiz.

Otro ejemplo muy claro de lo que puede hacer un paradigma, es la idea de notificar a cientos de clientes del cambio de la tarifa del servicio que les brinda una empresa, lo puedes hacer enviando alguna carta por correo, llamando a tus cliente telefónicamente, enviando un mail masivo a las direcciones de correo electrónico o anunciándolo en todos los medios de comunicación disponibles, al final el objetivo se cumplirá, no importa la  forma en que lo resolviste.

Como paradigmas encontramos el paradigma orientado a eventos, que normalmente es usado en aplicaciones de ambiente gráfico, en donde los eventos de cada control son la parte medular del enfoque de resolución; también encontramos el paradigma imperativo, que es el que nos ha acompañado de toda la vida desde nuestro bien amado lenguaje C, además encontramos paradigmas como el lógico, el declarativo y el funcional, pero el que nos interesa en este post (y por si no habían visto el titulo), es el paradigma de la programación orientada a objetos. 

En la POO, la materia prima son los objetos, los objetos reales y los objetos abstractos; los objetos reales son todas las cosas con las que podemos interactuar con el mundo real, a partir de que analizas un objeto en específico se hará la abstracción de los datos más importante de este objeto, por ejemplo, si vamos a hacer un sistema para una escuela y el objeto a estudiar es el estudiante, nos importara saber el nombre del estudiante, la edad, su dirección, el grado que cursa, el grupo y su historial académico, por otro lado no nos importara si es alto o bajo, si moreno, si le gusta tal o cual programa de televisión.

Por otro lado sabemos que las actividades que nos interesa registrar del alumno son las estrictamente escolares, es decir, nos importa saber cuándo se inscribe, si asiste, si paga la colegiatura y el llenado de sus calificaciones, no nos importa cuáles son sus actividades fuera de la escuela. A todo lo anterior se le conoce como abstracción, de nuestro objeto real que es un alumno, el cual es una persona que tiene muchos atributos y muchas actividades, tomamos las que nos pueden dar la información necesaria para nuestro sistema que administra la escuela, todo esto para dar paso a nuestro objeto abstracto, el cual es la réplica del objeto real, pero solo se conforma de la información que nos es útil.

A todo lo anterior se le conoce como abstracción, de nuestro objeto real que es un alumno, el cual es una persona que tiene muchos atributos y muchas actividades, tomamos las que nos pueden dar la información necesaria para nuestro sistema que administra la escuela, todo esto para dar paso a nuestro objeto abstracto, el cual es como la réplica del objeto real, pero solo se conforma de la información que nos es útil.

Una vez que finalizamos la abstracción de nuestro objeto real y tenemos nuestro objeto abstracto bien definido podremos armar nuestra clase. Una Clase está formada por atributos y por métodos, los atributos son las características de nuestro objeto, y los métodos las  actividades que va a realizar en nuestro sistema.



Cuando nuestra clase está bien definida, el siguiente paso es escribir el constructor del objeto. Un constructor es lo que nos permite crear un objeto a partir de su clase, indicara que nuestro nuevo objeto heredará todos los atributos y los métodos de nuestra clase, por ejemplo si nuestra clase se llama Alumno y nuestro objeto ObjetoAlumno, el constructor seria el siguiente: 

Alumno ObjetoAlumno= new Alumno();


Y para invocar el objeto con algunos de sus métodos tendríamos una línea de código como esta:

ObjetoAlumno.Inscripcion();
 
Si con todo la enterior aun no queda del todo claro, te dejare un diagrama para que nos ayude a que este enredijo de clases, metodos atributos y objetos quede mas claro.


Nos vemos hasta la proxima, cualquier duda, sugerencia o queja puedes dejarmela en los comentarios de abajo o me lo puedes decir en persona si tiene las posibilidad, que tengas una excelente semana y recuerda que siempre tendremos algo que contarte.

No hay comentarios:

Publicar un comentario

El pequeño cerdo capitalista.

Hace ya varios años que se del libro del pequeño cerdo capitalista, lo he visto en supermercados y librerías, incluso ya había leído ...