Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programacin Orientada a Objetos (POO), uno de los primeros conceptos que me vienen
a la mente es el de programacin. Se llama programacin a la creacin de un programa de
computadora, el cual es un conjunto concreto de instrucciones que una computadora puede
ejecutar. El programa se escribe en un lenguaje de programacin, aunque tambin se pueda
escribir directamente en lenguaje de mquina, con cierta dificultad. Un programa se puede
dividir en diversas partes, que pueden estar escritas en lenguajes distintos.
Metodologa:
Esta parte del curso tiene como objetivo introducirnos en el paradigma de la programacin
orientada a objetos. De esta forma seremos capaces de realizar programas fcilmente
mantenibles, modificables y reusables.
Una clase es por tanto una plantilla implementada en software que describe un conjunto de
objetos con atributos y comportamiento similares.
Una instancia u objeto de una clase es una representacin concreta y especfica de una clase
y que reside en la memoria del ordenador.
Fundamentos de programacin
Un lenguaje de programacin es, como todo lenguaje en general, un dialecto; o sea un
conjunto de convenciones utilizadas para comunicarse. De este modo, a travs de un
dialecto que con el tiempo ha ido evolucionando y mejorando, incluso volvindose ms
amigable a la comprensin humana, es la forma en que el hombre se comunica con las
mquinas. Hace mucho tiempo atrs el trmino programacin se refera a una codificacin
lineal absolutamente crptica y misteriosa; hoy en da, con el desarrollo de las interfaces
grficas de usuario, ms la evolucin de los lenguajes que se han tornado muchsimo ms
amigables y a su vez ms potentes, esto se presenta de una forma muy diferente y ya no tan
compleja.
Esta ecuacin se interpreta como que los algoritmos y los datos se tratan por separado. De
esta forma las funciones o procedimientos que tratan estos datos los van procesando y
pasando de unos a otros hasta obtener el resultado deseado.
Esta definicin resulta incompleta, pues se trata la definicin de un TAD (Tipo Abstracto
de Datos). Un TAD encapsula un tipo definido por el usuario junto con las operaciones
sobre estos datos, realizando un proceso de abstraccin, en el que se trata de ocultar los
detalles y agrupar caractersticas comunes para facilitar su uso y comprensin. La
diferencia entre el concepto de TAD y el de objeto radica en que adems del proceso de
abstraccin que se utiliza para su definicin, existen otros dos con los que se forma el
ncleo principal de la programacin orientada a objetos, la herencia y el polimorfismo.
Atributos
Los atributos son las caractersticas individuales que diferencian un objeto de otro y
determinan su apariencia, estado u otras cualidades. Los atributos se guardan en variables
denominadas de instancia, y cada objeto particular puede tener valores distintos para estas
variables.
Las variables de instancia tambin denominados miembros dato, son declaradas en la clase
pero sus valores son fijados y cambiados en el objeto.
Adems de las variables de instancia hay variables de clase, las cuales se aplican a la clase
y a todas sus instancias. Por ejemplo, el nmero de ruedas de un automvil es el mismo
cuatro, para todos los automviles.
Comportamiento
Del mismo modo que hay variables de instancia y de clase, tambin hay mtodos de
instancia y de clase. En el primer caso, un objeto llama a un mtodo para realizar una
determinada tarea, en el segundo, el mtodo se llama desde la propia clase.
Esta metodologa, como se mencion antes, gira en torno a trminos tales como
abstraccin, encapsulamiento, herencia y polimorfismo; para poder comprender lo que la
POO (programacin orientada a objetos) significa, tenemos que tener estos trminos claros,
as que pasamos a ver qu hay detrs de estos conceptos.
Hemos mencionado las cuatro caractersticas bsicas que debe cumplir un objeto para
denominarse como tal, pilar fundamental de la programacin orientada a objetos. Cuando
hablamos de un objeto, hablamos de pequeos elementos bien definidos, representaciones
verdaderas de objetos que tenemos en la vida real, mediante el uso e implementacin de la
metodologa de Programacin Orientada a Objetos intentamos crear objetos de software
que tengan correlacin con los objetos del mundo real en la solucin que intentamos
implementar, o sea, en un mdulo de facturacin de un sistema de gestin comercial,
vamos a crear nuestro objeto FACTURA, que tendr relaciones con nuestro objeto
CLIENTE, y PRODUCTO, la aplicacin de esta concepcin de trabajo es la que nos
permiten aislar cada componente del resto de la aplicacin y de esa forma aprovechar en
mayor medida nuestro esfuerzo, nuestra concentracin en el buen funcionamiento de dichos
componentes, nuestro control sobre ellos, ms prolijidad en la codificacin y por sobre
todas las cosas, REUTILIZAR EL CODIGO escrito.
Definido lo que es un objeto, ahora adems sabemos cules son sus cuatro caractersticas
principales y necesarias para denominarse como tal, vamos al detalle de lo que cada una de
ellas significa.
Abstraccin:
Encapsulamiento:
Herencia:
Es la caracterstica por la cual los objetos para su creacin se basan en una clase de base,
heredando todas sus propiedades, mtodos y eventos; los cuales a su vez pueden o no ser
implementados y/o modificados.
Polimorfismo:
Los objetos tienen dos caractersticas: Un estado y un comportamiento. Fijate que por
ejemplo tu perro tiene un estado: nombre, color, raza, altura, etc. y un comportamiento:
ladrar, cavar pozo, llorar, dormir, comer, etc.
Un auto es un objeto. Tambin tiene un estado: Cantidad de puertas, color, tamao, etc. y
un comportamiento: acelerar, frenar, subir cambio, bajar cambio, girar izq., girar der., etc.
Los objetos en programacin, son modelados observando objetos del mundo real, por
ejemplo, implementamos el objeto "perro" dentro de nuestro programa definiendo los
atributos y mtodos del objeto perro real.
Aqu se ve la necesidad de que el atributo "saldo" sea solo accesible a travs de los mtodos
"Depositar" y "Extraer" por una cuestin de seguridad, encapsulamiento y para evitar
comportamientos indeseados.
Qu es una clase?
Una clase es algo abstracto que define la "forma" del objeto, se podra hablar de la clase
como el molde de los objetos.
En el mundo real existen objetos del mismo tipo, por ejemplo, tu bicicleta es solo una ms
de todas las bicicletas del mundo. Entonces diramos que tu bicicleta es una instancia de la
clase "Bicicleta". Todas las bicicletas tienen los atributos: color, cantidad de cambios,
dueo y mtodos: acelerar, frenar, pasar cambio, volver cambio.
Las fbricas de bicicletas utilizan moldes para producir sus productos en serie, de la misma
forma en POO utilizaremos la clase bicicleta (molde) para producir sus instancias (objetos).
Ejemplo: Podramos tener la clase Perro, una instancia de esta clase podra ser el objeto
perro llamado "Chicho". La clase Perro especificara que todos los perros tendran un
nombre, color de pelo, una altura. Mientras que la instancia "Chicho" contendr valores
especficos para cada uno de estos atributos.
Podemos definir a una clase como una plantilla que define variables y mtodos comunes
para todos los objetos de cierto tipo.
Mensajes
Un objeto por s solo no tiene mucho significado. Ejemplo: el objeto "bicicleta" no tiene
mucho sentido si no interacta con un objeto "persona" que pedalee.
La interaccin entre objetos se produce mediante mensajes. Los mensajes son llamados a
mtodos de un objeto en particular.
Podemos decir que el objeto persona enva el mensaje "girar a la izquierda" al objeto
bicicleta.
Los mensajes pueden contener parmetros. Por ejemplo, teniendo un mtodo en la clase
bicicleta llamado "Girar" que recibe como parmetro la direccin (derecha o izquierda).
Como todo lo que un objeto puede hacer esta expresado mediante mtodos, el envo de
mensajes soporta todas las posibles interacciones entre objetos.
Para enviar o recibir mensajes, los objetos no necesitan formar parte del mismo proceso, ni
siquiera de la misma mquina.
Herencia
Los sistemas orientados a objetos permiten definir clases en trmino de otras clases. Por
ejemplo, ovejero alemn y caniche son diferentes razas de perros. En la terminologa
orientada a objetos "Ovejero Alemn" y "Caniche" son subclases de la clase perro. De
forma similar Perro es la superclase de "Ovejero Alemn".
Cada subclase hereda los atributos de la superclase. Tanto la clase "Ovejero Alemn" como
"Caniche" tendrn los atributos nombre, color de pelo, altura definidos en la clase Perro.
Una subclase no esta limitada nicamente a los atributos de su superclase, tambin puede
tener atributos propios, o redefinir algunos definidos anteriormente en la superclase.
No se esta limitado tampoco a un solo nivel de herencia, se pueden tener todos los que se
consideren necesarios.
Ejemplo:
Clase Empleado hereda de clase Persona, y esta a su vez hereda de clase Animal.
VENTAJAS Y DESVENTAJAS
Debido a lo que mencionamos recientemente, el hecho de que los objetos son mdulos
completos de cdigo, pequeos, de alta mantenibilidad y absolutamente independientes del
contexto en el que se utilicen, nos brinda la posibilidad de poder trabajar en un equipo de
desarrolladores que solo trabajen sobre clases de objetos, sobre las cuales los
desarrolladores de aplicaciones se basarn para personalizar sus funcionalidades heredando
las bases y luego reunirlas todas en una solucin final.
Como vemos, ste fue un claro ejemplo de lo que es la reutilizacin de cdigo, la
programacin orientada a objetos nos permite trabajar sobre una biblioteca de clases
personalizadas que luego utilizaremos como base de nuestros futuros desarrollos.
BIBLIOGRAFIA
http://tikal.cifn.unam.mx/~jsegura/LCGII/java1.htm