Você está na página 1de 4

Qu es la POO?

Las siglas POO se corresponden con Programacin Orientada a Objetos, aunque muchas
veces las podemos encontrar escritas en ingls OOP (Object Oriented Programming).
La Programacin Orientada a Objetos trata de utilizar una visin real del mundo dentro de
nuestros programas. La visin que se tiene del mundo dentro de la POO es que se encuentra
formado por objetos.
Para comprender bien la POO debemos olvidar un poco la Programacin Estructurada, que si
nos fijamos bien es algo artificial, la POO es una forma de abordar los problemas ms natural.
Aqu natural significa ms en contacto con el mundo real que nos rodea, de esta forma si
queremos resolver un problema determinado, debemos identificar cada una de las partes del
problema con objetos presentes en el mundo real.

Objetos
Como ya hemos adelantado un objeto es la pieza bsica de la POO, es una representacin o
modelizacin de un objeto real perteneciente a nuestro mundo, por ejemplo, podemos tener un
objeto perro que represente a un perro dentro de nuestra realidad, o bien un objeto factura,
cliente o pedido.
Los objetos en la vida real tienen todos, dos caractersticas: estado y comportamiento. El
estado de un objeto viene definido por una serie de parmetros que lo definen y que lo
diferencian de objetos de lmismo tipo. En el caso de tener un objeto perro, su estado estara
definido por su raza, color de pelo,tamao, etc. Y el comportamiento viene definido por las
acciones que pueden realizar los objetos, por ejemplo, en el caso del perro su comportamiento
sera: saltar, correr, ladrar, etc. El comportamiento permite distinguir a objetos de distinto tipo,
as por ejemplo el objeto perro tendr un comportamiento distinto a un objeto gato.
Si tomamos un ejemplo que tiene que ver ms con el mundo de la informtica se pueden ver
ms claros estos dos conceptos. Si tenemos un objeto pantalla que representa la pantalla de
nuestroor denador, el estado de la misma estara definido por los siguientes parmetros:
encendida o apagada,tamao, resolucin, nmero de colores, etc.; y su comportamiento podra
ser: imprimir, encender,apagar, etc.
Los parmetros o variables que definen el estado de un objeto se denominan atributos o
variables miembro y las acciones que pueden realizar los objetos se denominan mtodos o
funciones miembro, y para indicar variables miembro y funciones miembro se utiliza el trmino
general miembro.
Si lo comparamos con la programacin estructurada podramos hacer la siguiente
aproximacin: los atributos o variables miembro seran variables y los mtodos o funciones
miembro procedimientos y funciones.
A partir de ahora y a lo largo de todo el presente curso vamos a utilizar nicamente la
nomenclatura de atributos y mtodos.
Los atributos de un objeto deben encontrarse ocultos al resto de los objetos, es decir, no se va
a poder acceder directamente a los atributos de un objeto para modificar su estado o
consultarlo. Para acceder a los atributos de un objeto se deben utilizar mtodos. Es decir, los
mtodos exponen toda la funcionalidad del objeto, mientras que los detalles del estado interno
del objeto permanecen ocultos.
Incluso algunos mtodos tambin pueden permanecer ocultos. El hecho de ocultar la
implementacin interna de un objeto, es decir, como est construido y de que se compone se
denomina encapsulacin. La encapsulacin es uno de los beneficios y particularidades del
paradigma de la Programacin Orientada a Objetos.
Normalmente un objeto ofrece una parte pblica que ser utilizada por otros objetos para
interactuar entre s, pero tambin permanece una parte oculta para encapsular los detalles de
la implementacin del objeto.

Clases
Una clase es un molde o prototipo que define un tipo de objeto determinado. Una clase define
los atributos y mtodos que va a poseer un objeto. Mediante las clases podremos crear o

instanciar objetos de un mismo tipo, estos objetos se distinguirn unos de otros a travs de su
estado, es decir, el valor de sus atributos.
La clase la vamos a utilizar para definir la estructura de un objeto, es decir, estado (atributos) y
comportamiento (mtodos). La clase es un concepto abstracto que generalmente no se va a
utilizar directamente en nuestros programas o aplicaciones. Lo que vamos a utilizar van a ser
objetos concretos que son instancias de una clase determinada.
La clase es algo genrico y abstracto, es similar a una idea. Cuando decimos piensa en un
coche todos tenemos en mente la idea general de un coche, con puertas, ruedas, un volante,
etc., sin embargo cuando decimos "ese coche que est aparcado ah fuera", ya se trata de un
coche determinado, con una matrcula, de un color, con un determinado nmero de puertas, y
que podemos tocar y utilizar si es necesario. Sin embargo como ya hemos dicho la clase es la
idea que define al objeto concreto.
Un ejemplo que se suele utilizar para diferenciar y relacionar clases y objetos es el ejemplo del
moldede galletas. El molde para hacer galletas sera una clase, y las galletas que hacemos a
partir de ese molde ya son objetos concretos creados a partir de las caractersticas definidas
por el molde.
Una vez implementada una clase podremos realizar instancias de la misma para crear objetos
que pertenezcan a esa clase. Las clases ofrecen el beneficio de la reutilizacin, utilizaremos la
misma clase para crear distintos objetos. Y luego veremos que una vez que tenemos una clase
podremos aprovecharla heredando de ella para complicarla o especializarla para una labor
concreta.
Si comparamos las clases y objetos de la POO con la programacin estructurada tradicional, se
puede decir que las clases son los tipos de datos y los objetos las variables de esos tipos de
datos. De esta forma si tenemos el tipo entero, en la POO diramos que es la clase entero, y si
tenemos una variable de tipo entero, en la POO diramos que tenemos un objeto de la clase
entero.

Herencia
La herencia es un mecanismo mediante el cual podemos reutilizar clases ya definidas. Es decir,
si tenemos una clase botn que define un tipo de objeto que se corresponde con un botn que
tiene un texto, que se puede pulsar, etc., si queremos definir una nueva clase llamada botn de
color, no tenemos que rescribir todo el cdigo y crear una clase completamente nueva, sino lo
que haremos ser heredar de la clase botn, utilizar lo que nos ofrezca esta clase y aadirle lo
que sea necesario para la nueva funcionalidad deseada.
La herencia dentro de la POO es un mecanismo fundamental que se puede definir tambin
como una transmisin de las caractersticas de padres a hijos. Entendiendo aqu caractersticas
como mtodos y atributos de una clase. La clase hija puede aadir atributos, mtodos y
redefinir los mtodos de la clase padre.
Podemos ver la herencia como una sucesiva especializacin de las clases. La clase de la que
se hereda se suele denominar clase padre o superclase, y la clase que hereda se denomina
clase hija o subclase.
El mecanismo de herencia es muy potente, puesto que nos permite agregar funcionalidades
nuevas a una clase ya existente, reutilizando todo el cdigo que ya se tenga disponible de la
clase padre, es decir, se heredarn sus atributos y mtodos, como ya habamos indicado con
anterioridad. En las clases hijas podemos redefinir el comportamiento de la clase padre.
Para verificar que la herencia entre dos clases es correcta y coherente, debemos hacernos la
pregunta de "es un?" o "es un tipo de?". Por ejemplo, en el caso que comentbamos del
botn, tenemos una clase BotonColor que hereda de la clase Boton. Esta herencia contesta
perfectamente a la pregunta definida antes: un botn de color es un botn?, evidentemente s.
Mediante el mecanismo de herencia podemos definir superclases denominadas clases
abstractas que definen comportamientos genricos. De esta clase pueden heredar otras clases
que ya implementan de forma ms concreta estos comportamientos. De esta forma podremos
crear jerarquas de clases.

As por ejemplo podemos tener una clase bicicleta, que ser ms o menos genrica. De esta
clase pueden heredar la clase bicicleta de montaa, bicicleta de carreras y tandem, que ya
ofrecen una clase ms especializada que la clase padre.
Los mtodos que se heredan de la clase padre no tienen porqu utilizarse sin realizar ningn
cambio, se puede llevar a cabo lo que se denomina la sobrescritura de mtodos. Podemos
heredar un mtodo de la clase padre, pero en la clase hija le podemos dar una implementacin
diferente para que se adecue a la nueva clase.
La herencia puede ser simple si la clase hija hereda de una nica clase padre o mltiple si
hereda de varias clases padre, ms adelante veremos que el tipo de herencia que soporta Java
es una herencia simple. Algunas veces la herencia mltiple puede llegar a ser confusa.

Mtodos
Como ya hemos dicho anteriormente los mtodos son las acciones que se pueden realizar con
los objetos. Tambin se podra definir un mtodo como la implementacin de un mensaje, al fin
y al cabo, un mensaje es la llamada o invocacin de un mtodo de un objeto.
Existen dos mtodos especiales dentro de la POO que se denominan constructor y destructor.
El mtodo constructor se ejecuta automticamente cada vez que se crea un objeto de la clase
en cuestin, sobre el objeto que acaba de crearse, inmediatamente despus de haberse
asignado memoria a dicho objeto. Algunos lenguajes proporcionan un constructor por defecto,
pero generalmente lo correcto es que lo defina el diseador de la clase y que en l se lleven a
cabo las inicializaciones y todas aquellas operaciones que se necesiten para poder usar el
objeto.
El mtodo destructor se invoca automticamente inmediatamente antes de liberar la memoria
del objeto en cuestin, o lo que es lo mismo, antes de que se salga del mbito de la
declaracin del objeto, por lo que se ha de emplear para que la destruccin del objeto se
efecte correctamente y contendr operaciones tales como liberacin de memoria asignada
dinmicamente dependiente del objeto, grabacin de todos o parte de los atributos del objeto
en un fichero o base de datos y operaciones similares.

Polimorfismo
El trmino polimorfismo expresa la posibilidad de que el mismo mensaje, enviado a objetos
distintos, ejecute mtodos distintos. Esto significa que podemos definir dentro de dos clases
distintas dos operaciones con el mismo nombre y aspecto externo, pero con distintas
implementaciones para cada clase.
En el momento de emplear estas operaciones, el lenguaje es capaz de ejecutar el cdigo
correspondiente dependiendo de la clase del objeto sobre el que se ejecuta la operacin. Esto
permite definir un interfaz comn, un aspecto externo idntico, para una serie de clases.
De esta forma podemos definir un mtodo suma() para la clase Enteros y otro mtodo suma()
para la clase Matrices. El mensaje ser el mismo, pero la implementacin de los mtodos ser
distinta ya que no es lo mismo sumar enteros que matrices.

Alumna: Shirley Gabriela Cedeo Vlez


Curso: Segundo semestre de Ingeniera en Sistemas

Bibliografa
Esteban, . (2008). Programacin en Java. Madrid: Eidos.

Você também pode gostar