Sie sind auf Seite 1von 5

PROGRAMACION ORIENTADA A OBJETOS.

La programacin Orientada a objetos (POO) es una forma especial de programar,


ms cercana a como expresaramos las cosas en la vida real que otros tipos de
programacin.

Con la POO tenemos que aprender a pensar las cosas de una manera distinta,
para escribir nuestros programas en trminos de objetos, propiedades, mtodos y
otras cosas que veremos rpidamente para aclarar conceptos y dar una pequea
base que permita soltarnos un poco con este tipo de programacin.

Cmo se piensa en objetos


Pensar en trminos de objetos es muy parecido a cmo lo haramos en la vida
real. Por ejemplo vamos a pensar en un coche para tratar de modelizarlo en un
esquema de POO. Diramos que el coche es el elemento principal que tiene una
serie de caractersticas, como podran ser el color, el modelo o la marca. Adems
tiene una serie de funcionalidades asociadas, como pueden ser ponerse en
marcha, parar o aparcar.

Pues en un esquema POO el coche sera el objeto, las propiedades seran las
caractersticas como el color o el modelo y los mtodos seran las funcionalidades
asociadas como ponerse en marcha o parar.

Por poner otro ejemplo vamos a ver cmo modelizaramos en un esquema POO
una fraccin, es decir, esa estructura matemtica que tiene un numerador y un
denominador que divide al numerador, por ejemplo 3/2.

La fraccin ser el objeto y tendr dos propiedades, el numerador y el


denominador. Luego podra tener varios mtodos como simplificarse, sumarse con
otra fraccin o nmero, restarse con otra fraccin, etc.

Estos objetos se podrn utilizar en los programas, por ejemplo en un programa de


matemticas hars uso de objetos fraccin y en un programa que gestione un
taller de coches utilizars objetos coche. Los programas Orientados a objetos
utilizan muchos objetos para realizar las acciones que se desean realizar y ellos
mismos tambin son objetos. Es decir, el taller de coches ser un objeto que
utilizar objetos coche, herramienta, mecnico, recambios, etc.

Clases en POO

Las clases son declaraciones de objetos, tambin se podran definir como


abstracciones de objetos. Esto quiere decir que la definicin de un objeto es la
clase. Cuando programamos un objeto y definimos sus caractersticas y
funcionalidades en realidad lo que estamos haciendo es programar una clase. En
los ejemplos anteriores en realidad hablbamos de las clases coche o fraccin
porque slo estuvimos definiendo, aunque por encima, sus formas.

Propiedades en clases
Las propiedades o atributos son las caractersticas de los objetos. Cuando
definimos una propiedad normalmente especificamos su nombre y su tipo. Nos
podemos hacer a la idea de que las propiedades son algo as como variables
donde almacenamos datos relacionados con los objetos.

Mtodos en las clases


Son las funcionalidades asociadas a los objetos. Cuando estamos programando
las clases las llamamos mtodos. Los mtodos son como funciones que estn
asociadas a un objeto.

Caracteristicas.

Existe un acuerdo acerca de qu caractersticas contempla la "orientacin a


objetos". Las caractersticas siguientes son las ms importantes

Abstraccin
Denota las caractersticas esenciales de un objeto, donde se capturan sus
comportamientos. Cada objeto en el sistema sirve como modelo de un
"agente" abstracto que puede realizar trabajo, informar y cambiar su estado,
y "comunicarse" con otros objetos en el sistema sin revelar "cmo" se
implementan estas caractersticas. Los procesos, las funciones o los
mtodos pueden tambin ser abstrados, y, cuando lo estn, una variedad
de tcnicas son requeridas para ampliar una abstraccin. El proceso de
abstraccin permite seleccionar las caractersticas relevantes dentro de un
conjunto e identificar comportamientos comunes para definir nuevos tipos
de entidades en el mundo real. La abstraccin es clave en el proceso de
anlisis y diseo orientado a objetos, ya que mediante ella podemos llegar
a armar un conjunto de clases que permitan modelar la realidad o el
problema que se quiere atacar.
Encapsulamiento
Significa reunir todos los elementos que pueden considerarse
pertenecientes a una misma entidad, al mismo nivel de abstraccin. Esto
permite aumentar la cohesin (diseo estructurado) de los componentes del
sistema. Algunos autores confunden este concepto con el principio de
ocultacin, principalmente porque se suelen emplear conjuntamente.
Polimorfismo
Comportamientos diferentes, asociados a objetos distintos, pueden
compartir el mismo nombre; al llamarlos por ese nombre se utilizar el
comportamiento correspondiente al objeto que se est usando. O, dicho de
otro modo, las referencias y las colecciones de objetos pueden contener
objetos de diferentes tipos, y la invocacin de un comportamiento en una
referencia producir el comportamiento correcto para el tipo real del objeto
referenciado. Cuando esto ocurre en "tiempo de ejecucin", esta ltima
caracterstica se llama asignacin tarda o asignacin dinmica. Algunos
lenguajes proporcionan medios ms estticos (en "tiempo de compilacin")
de polimorfismo, tales como las plantillas y la sobrecarga de operadores de
C++.
Herencia
Las clases no se encuentran aisladas, sino que se relacionan entre s,
formando una jerarqua de clasificacin. Los objetos heredan las
propiedades y el comportamiento de todas las clases a las que pertenecen.
La herencia organiza y facilita el polimorfismo y el encapsulamiento,
permitiendo a los objetos ser definidos y creados como tipos especializados
de objetos preexistentes. Estos pueden compartir (y extender) su
comportamiento sin tener que volver a implementarlo. Esto suele hacerse
habitualmente agrupando los objetos en clases y estas
en rboles o enrejados que reflejan un comportamiento comn. Cuando
un objeto hereda de ms de una clase se dice que hay herencia mltiple;
siendo de alta complejidad tcnica por lo cual suele recurrirse a la herencia
virtual para evitar la duplicacin de datos.
Modularidad
Se denomina "modularidad" a la propiedad que permite subdividir una
aplicacin en partes ms pequeas (llamadas mdulos), cada una de las
cuales debe ser tan independiente como sea posible de la aplicacin en s y
de las restantes partes. Estos mdulos se pueden compilar por separado,
pero tienen conexiones con otros mdulos. Al igual que la encapsulacin,
los lenguajes soportan la modularidad de diversas formas.
Principio de ocultacin
Cada objeto est aislado del exterior, es un mdulo natural, y cada tipo de
objeto expone una "interfaz" a otros objetos que especifica cmo pueden
interactuar con los objetos de la clase. El aislamiento protege a las
propiedades de un objeto contra su modificacin por quien no tenga
derecho a acceder a ellas; solamente los propios mtodos internos del
objeto pueden acceder a su estado. Esto asegura que otros objetos no
puedan cambiar el estado interno de un objeto de manera inesperada,
eliminando efectos secundarios e interacciones inesperadas. Algunos
lenguajes relajan esto, permitiendo un acceso directo a los datos internos
del objeto de una manera controlada y limitando el grado de abstraccin. La
aplicacin entera se reduce a un agregado o rompecabezas de objetos.
Recoleccin de basura
La recoleccin de basura, la tcnica por la cual el entorno de objetos se
encarga de destruir automticamente, y por tanto desvincular la memoria
asociada, los objetos que hayan quedado sin ninguna referencia a ellos.
Esto significa que el programador no debe preocuparse por la asignacin o
liberacin de memoria, ya que el entorno la asignar al crear un nuevo
objeto y la liberar cuando nadie lo est usando. En la mayora de los
lenguajes hbridos que se extendieron para soportar el Paradigma de
Programacin Orientada a Objetos como C++ u Object Pascal, esta
caracterstica no existe y la memoria debe desasignarse expresamente.

Das könnte Ihnen auch gefallen