Está en la página 1de 4

La programacin orientada a objetos es un paradigma surgido en los aos 70,

que utiliza objetos como elementos fundamentales en la construccin de la


solucin. Un objeto es una abstraccin de algn hecho o ente del mundo real,
con atributos que representan sus caractersticas o propiedades, y mtodos
que emulan su comportamiento o actividad. Todas las propiedades y mtodos
comunes a los objetos se encapsulan o agrupan en clases. Una clase es una
plantilla, un prototipo para crear objetos; en general, se dice que cada objeto
es una instancia o ejemplar de una clase.
Paradigma es una manera de pensar el problema, y en funcin de ello, buscar
una solucin. Por ejemplo, si pienso en una factura (de esas que te dan cuando
compras algo), e intento representarla basndome en el paradigma de objetos,
debera pensarla como: un "objeto factura"... ese objeto tiene ciertas
caractersticas (una fecha, un cliente, un numero de factura, una cantidad
determinada de productos, etc.). Es decir, debera pensar en la factura como
un objeto compuesto por ciertas caractersticas. Ahora, dijimos que la factura
tena una determinada cantidad de productos, entonces podramos pensar a
cada producto tambin como un objeto. El "objeto Producto" tiene
caractersticas como: precio de costo, descripcin, proveedor, precio de venta,
etc. Redondeando la idea, podemos ver que cada elemento de la realidad que
nos rodea, puede ser pensado como objetos (una persona: con caractersticas
como edad, nombre, direccin, estado civil --- Un medio de transporte: con
caractersticas como: velocidad mxima, capacidad mxima de pasajeros,
costo, etc.). El paradigma de objetos es la forma de pensar a cada elemento
del problema que tenemos que resolver, como si fuera un objeto. Existen otros
paradigmas, como el paradigma procedural (u orientado a los procedimientos,
paradigma lgico, paradigma funcional...
Qu es una clase de objetos? Antes de explicar que es una clase dentro
del paradigma de objetos, pensemos en situaciones reales de la vida cotidiana.
El ser humano, por naturaleza, agrupa los objetos de la realidad en "clases de
objetos". Por ejemplo, si hablo de un caballo, un automvil, un mnibus, un
avin y un tren.... Podra agrupar todos esos objetos dentro de la clase "medios
de transporte". Es decir, aunque cada uno de ellos tenga caractersticas
distintas, todos sirven para transportar personas. Algunos tendrn ruedas,
otros alas, el caballo tendr piernas, etc.

ATRIBUTOS

Los atributos son las caractersticas propias de cada objeto. Por ejemplos:
Persona: edad, altura, sexo, direccin, telfono, nombre, apellido, peso, etc.
Automvil: color, marca, modelo, precio, velocidad mxima, etc. Los atributos
de un objeto en particular, pueden cambiar el valor que contienen, por
ejemplo, el atributo edad de un objeto Persona, puede contener el valor 22 (la
persona tiene 22 aos), pero obviamente ese valor puede variar en cualquier
momento. Los atributos no contienen valores estticos o fijos, sino que
contienen valores que cambian (o pueden cambiar) constantemente.
Obviamente hay atributos que no cambian mucho, como por ejemplo el
atributo sexo de un objeto persona, puede contener "masculino" o "femenino"
pero difcilmente cambie (aunque en estos das todo es posible) Los atributos
son caractersticas de los objetos, como vimos en los ejemplos, son bastante
sencillos de enumerar. Hay que tener en cuenta que, en funcin del problema
que estemos tratando de resolver, hay atributos que debemos descartar.

MTODOS
Los mtodos, son acciones que los objetos son capaces de llevar a cabo. Por
ejemplo, el objeto "Automvil" puede tener un mtodo llamado moverse, el
cual modificara el atributo "ubicacin", o un objeto "Persona", puede tener un
mtodo que se llame cumplir Aos, este mtodo, aumentara en una unidad el
valor el atributo edad. En el paradigma de objetos, se dice que los objetos se
comunican entre s, envindose mensajes. Entenderemos ahora que son los
mensajes.

MENSAJES
Un mensaje es una solicitud que se realiza a un objeto para que ejecute un
bloque de codigo determinado. Cmo es esto? Si recordamos todo lo que
vimos hasta ahora podramos resumir lo siguiente: un objeto tiene atributos
(que son las caractersticas propias de cada objeto) y mtodos (acciones que el
objeto puede llevar a cabo). Entonces, un mensaje es un pedido para que el
objeto ejecute uno de sus mtodos.

CARACTERSTICAS DE LA POO

No hay un acuerdo aceptado por todo el mundo respecto a cules son las
caractersticas que definen la POO. Pero las caractersticas siguientes son las
ms importantes:

ABSTRACCIN
La abstraccin es una propiedad que permite en programacin, tomar
informacin relevante, y descartar aquellos detalles que no son importantes en
el mbito del problema. Es decir, pensemos que debemos construir una clase
que se llame Pacientes, para una aplicacin de un consultorio mdico (de esos
tpicos que usan las secretarias para asignar turnos). Pensaramos entonces en
que propiedades de los pacientes nos interesan. Edad, Peso, Antecedentes
mdicos, Altura, Direccin y Telfono. Si observamos bien, todos estos
ATRIBUTOS del objeto PACIENTE son relevantes para un consultorio mdico,
mas no nos interesara agregar el ATRIBUTO Ingresos Mensuales. Y la verdad
que no, para que querra un medico tener dicha informacin. En conclusin, la
abstraccin nos permite centrarnos en los detalles inherentes al problema,
dejando de lado detalles que no lo son.

ENCAPSULAMIENTO
Significa reunir todos los elementos que pueden considerarse pertenecientes a
una misma entidad, al mismo nivel de abstraccin. Esto permite aumentar la
cohesin de los componentes del sistema. Algunos autores confunden este
concepto con el principio de ocultacin, principalmente porque se suelen
emplear conjuntamente.

HERENCIA

Sin entrar en POO, pensemos en el concepto de Herencia. Cuando nacemos,


tenemos ciertas caractersticas, que segn nuestros padres heredamos de
alguno de los dos (eventualmente de los abuelos) como por ejemplo el color de
ojos, el carcter, la altura, ciertas destrezas, etc. En POO sucede lo mismo con
las clases de objetos, ciertas clases heredan de otras, mtodos y atributos,
conformndose as una JERARQUIA DE CLASES... pero vamos despacio:
Pensemos en la clase Medios De Transporte:
Esta clase servir como CLASE BASE o CLASE PADRE para otras. Esto quiere
decir que podemos hacer otras clases que contengan todos los mtodos y

atributos que la anterior, PERO QUE ADEMAS TENGAN METODOS Y ATRIBUTOS


PROPIOS. Veamos dos ejemplos de clases que hereden de la clase Medios De
Transporte.
Creo que en el ejemplo quedo ms que claro, la herencia se utiliza para dos
cosas fundamentales. Primero, para ahorrarse el trabajo de programar o
codificar dos clases que tienen los mismos mtodos y atributos, hacindolo
solo una vez en la clase PADRE, y luego declarando en las clases HIJAS que
heredan de su PADRE. Con esto se consigue que una clase tenga los mismos
mtodos y atributos que su padre, pero que adems pueda agregar los suyos.
La otra finalidad que persigue la herencia es una correcta organizacin en la
Jerarqua de Clases, haciendo ms entendible el modelado del problema.

MODULARIDAD
Este concepto es ms sencillo, y viene del viejo dicho "DIVIDE Y TRIUNFARAS".
Se trata de un concepto que implica dividir el GRAN problema en muchas
partes PEQUENAS, a fin de que cada una de ellas sea ms fcil de manejar y
sea o este especializada en una tarea particular. Pensemos en la construccin
de un edificio, donde cualquier persona hace lo que quiere, el arquitecto
colocando los cermicos, el electricista pintando las paredes, sera un
completsimo desastre no. En la POO pasa lo mismo. Cuando modelamos una
serie de clases de objetos, con sus respectivos mtodos y atributos, debemos
pensar en dividir el problema en muchas partes pequeas, siguiendo el
ejemplo del edificio deberamos pensar en una clase "Obreros" y dentro de ella
SUBCLASES o CLASES HIJAS que se encarguen respectivamente de colocar
cermicos, otra de preparar el cemento, otra de armar las columnas, etc.,
mientras otra clase Electricista tendr SUBCLASES que se encargaran de pasar
cables, otras de colocar lamparitas, etc. Este concepto nos estimula a organizar
las clases para que el modelado sea: ms entendible, ms til, y con menor
redundancia, logrando el desempeo ptimo y una mejor especializacin de
cada clase.

POLIMORFISMO
Aunque suene raro, su definicin es bastante simple. El POLIMORFISMO es la
capacidad que tienen objetos de diferentes clases de responder a mensajes
con el mismo nombre. Ejemplifiqumoslo:
Una clase CAJA_AHORRO: posee el mtodo extraer Dinero (cuanto)
Una clase CUENTA_CORRIENTE: tambin posee el mtodo extraer Dinero
(cuanto)
Tengamos en cuenta que las dos clases son totalmente distintas. Solo a MODO
DE EJEMPLO vamos a decir que cuando extraemos dinero de una CAJA_AHORRO
se resta el monto que extraemos del dinero disponible en ella (como
lamentablemente sucede en la realidad jaja) mientras que si extraemos dinero
de una CUENTA_CORRIENTE, adems de restarse el dinero que extraemos, el
banco nos cobra una comisin.
Ahora, supongamos que tenemos que hacer el balance diario de los
movimientos de todas las cuentas del banco, y para ello, vamos leyendo de un
archivo una por una las cuentas (ya sean cajas de ahorro o cuentas corrientes).
He aqu donde aparece el POLIMORFISMO. Primero leo una cuenta a la vez de
los archivos de cuentas y lo guardo en un objeto.
La pregunta es... Como puedo saber si la cuenta que lei del archivo es una
CAJA_AHORRO o una CUENTA_CORRIENTE??

La respuesta es simple: NO ME INTERESA! Porque ambas clases poseen el


mtodo extraer Dinero(cuanto), ms all que cada una de ellas haga cosas
distintas. Entonces, el POLIMORFISMO, como dije antes, es la capacidad que
tienen objetos de diferentes clases de responder a mensajes con el mismo
nombre, lo cual es extremadamente til en ciertas ocasiones (como en el
ejemplo anterior). Un mensaje con la misma firma puede ser entendido por
objetos de distintas clases, aunque cada uno de ellos tenga un mtodo
asociado distinto. Recordemos que un mtodo es la implementacin de un
mensaje, por lo tanto cada una de las clases tendr maneras distintas de
implementar dicho mensaje, pero con seguridad sabemos que lo entender.

RECOLECCIN DE BASURA

Tambin denominado Garbage Collector, es un mtodo de "limpieza de


memoria". Cuando corremos una aplicacin que respeta el paradigma de
objetos, cada objeto que es creado durante la ejecucin va a parar a memoria
principal. entonces, que pasara si ejecutamos nuestra aplicacin un tiempo
prolongado?? la respuesta ms sencilla seria "La memoria se va a llenar y ya
no se podrn seguir cargando objetos en ella". Es por esto, que existe lo que se
denomina Recolector de Basura, y consiste en un mecanismo de eliminacin de
objetos que ya no se utilizan en memoria con el objeto de optimizar el uso de
la misma.

También podría gustarte