Você está na página 1de 7

PROGRAMACIN ORIENTADA A OBJETOS

La programacin orientada a objetos o POO es un paradigma de


programacin que usa objetos y sus interacciones para disear aplicaciones y
programas de ordenador. Est basado en varias tcnicas, incluyendo abstraccin,
herencia, modularidad, polimorfismo y encapsulamiento. Su uso se populariz a
principios de la dcada de 1990. Actualmente son muchos los lenguajes de
programacin que soportan la orientacin a objetos.

La programacin orientada a objetos expresa un programa como un


conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto
permite hacer los programas y mdulos ms fciles de escribir, mantener, y
reutilizar.
De aquella forma, un objeto contiene toda la informacin que permite
definirlo e identificarlo frente a otros objetos pertenecientes a otras clases e
incluso frente a objetos de una misma clase, al poder tener valores bien
diferenciados en sus atributos. A su vez, los objetos disponen de mecanismos de
interaccin llamados mtodos que favorecen la comunicacin entre ellos. Esta
comunicacin favorece a su vez el cambio de estado en los propios objetos. Esta
caracterstica lleva a tratarlos como unidades indivisibles, en las que no se separan
ni deben separarse el estado y el comportamiento.
Los mtodos y atributos estn estrechamente relacionados por la propiedad
de conjunto. Esta propiedad destaca que una clase requiere de mtodos para poder
tratar los atributos con los que cuenta. El programador debe pensar
indistintamente en ambos conceptos, sin separar ni darle mayor importancia a
alguno de ellos. Hacerlo podra producir el hbito errneo de crear clases
contenedoras de informacin por un lado y clases con mtodos que manejen a las

primeras por el otro. De esta manera se estara realizando una programacin


estructurada camuflada en un lenguaje de programacin orientado a objetos.
Esto difiere de la programacin estructurada tradicional, en la que los
datos y los procedimientos estn separados y sin relacin, ya que lo nico que se
busca es el procesamiento de unos datos de entrada para obtener otros de salida.
La programacin estructurada anima al programador a pensar sobre todo en
trminos de procedimientos o funciones, y en segundo lugar en las estructuras de
datos que esos procedimientos manejan. En la programacin estructurada slo se
escriben funciones que procesan datos. Los programadores que emplean ste
nuevo paradigma, en cambio, primero definen objetos para luego enviarles
mensajes solicitndoles que realicen sus mtodos por s mismos.
Historia
Los conceptos de la POO tienen origen en Simula 67, un lenguaje
diseado para hacer simulaciones, creado por Ole-Johan Dahl y Kristen Nygaard
del Centro de Cmputo Noruego en Oslo. Al parecer, en este centro, trabajaban en
simulaciones de naves, y fueron confundidos por la explosin combinatoria de
cmo las diversas cualidades de diversas naves podan afectar unas a las otras. La
idea ocurri para agrupar los diversos tipos de naves en diversas clases de objetos,
siendo responsable cada clase de objetos de definir sus propios datos y
comportamiento. Fueron refinados ms tarde en Smalltalk, que fue desarrollado
en Simula en Xerox PARC pero diseado para ser un sistema completamente
dinmico en el cual los objetos se podran crear y modificar "en marcha" en lugar
de tener un sistema basado en programas estticos.
La POO tom posicin como el estilo de programacin dominante a
mediados de los aos ochenta, en gran parte debido a la influencia de C++, una
extensin del lenguaje de programacin C. Su dominacin fue consolidada gracias

al auge de las Interfaces grficas de usuario, para las cuales la programacin


orientada a objetos est particularmente bien adaptada. En este caso, se habla
tambin de programacin dirigida por eventos.
Las caractersticas de orientacin a objetos fueron agregadas a muchos
lenguajes existentes durante ese tiempo, incluyendo Ada, BASIC, Lisp, Pascal,
entre otros. La adicin de estas caractersticas a los lenguajes que no fueron
diseados inicialmente para ellas condujo a menudo a problemas de
compatibilidad y en la capacidad de mantenimiento del cdigo. Los lenguajes
orientados a objetos "puros", por otra parte, carecan de las caractersticas de las
cuales muchos programadores haban venido a depender. Para saltar este
obstculo, se hicieron muchas tentativas para crear nuevos lenguajes basados en
mtodos orientados a objetos, pero permitiendo algunas caractersticas
imperativas de maneras "seguras". El Eiffel de Bertrand Meyer fue un temprano y
moderadamente acertado lenguaje con esos objetivos pero ahora ha sido
esencialmente reemplazado por Java, en gran parte debido a la aparicin de
Internet, y a la implementacin de la mquina virtual de Java en la mayora de
navegadores. PHP en su versin 5 se ha ido modificando y soporta una orientacin
completa a objetos, cumpliendo todas las caractersticas propias de la orientacin
a objetos.
Caractersticas de la POO
Hay un cierto acuerdo sobre exactamente qu caractersticas de un mtodo
de programacin o lenguaje le definen como "orientado a objetos", pero hay un
consenso general en que las caractersticas siguientes son las ms importantes:

Abstraccin: Denota las caractersticas esenciales de un

objeto, donde se capturan sus comportamientos.

Encapsulamiento: Significa reunir a todos los elementos que

pueden considerarse pertenecientes a una misma entidad, al mismo nivel


de abstraccin.

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.

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.

Herencia: las clases no estn aisladas, sino que se relacionan

entre s, formando una jerarqua de clasificacin.

Recoleccin de basura: la Recoleccin de basura o Garbage

Collector es la tcnica por la cual el ambiente de Objetos se encarga de


destruir automticamente.
Ejemplos
Algunos ejemplos de la programacin orientada a objetos son los
programas interactivos que pueden llegar ha tener animacin en sus acciones,
tales como, Java y Flash Player, estos programas son los mas usados para animar
objetos en movimiento principalmente, unos de las caractersticas en la que mejor
se muestran es en la reproduccin de videos por Internet, juegos online, en salva
pantallas, y en la mayora de aplicaciones de dispositivos mviles.

ABSTRACIN
La abstraccin consiste en aislar un elemento del resto de los elementos
que lo acompaan. En programacin, el trmino se refiere al nfasis en el "qu
hace?" ms que en el "cmo lo hace?". El comn denominador en la evolucin
de los lenguajes de programacin, desde los clsicos o imperativos hasta los
orientados a objetos, ha sido el nivel de abstraccin del que cada uno de ellos hace
uso.
Los lenguajes de programacin son las herramientas mediante las cuales
los diseadores de lenguajes pueden implementar los modelos abstractos. La
abstraccin ofrecida por los lenguajes de programacin se puede dividir en dos
categoras: abstraccin de datos (pertenecientes a los datos) y abstraccin de
control (perteneciente a las estructuras de control).
Los diferentes paradigmas de programacin han aumentado su nivel de
abstraccin, comenzando desde los lenguajes de mquina, lo ms prximo al
ordenador y ms lejano a la comprensin humana; pasando por los lenguajes de
comandos, los imperativos, la orientacin a objetos, la Programacin Orientada a
Aspectos; u otros paradigmas como la programacin declarativa, etc.
La abstraccin encarada desde el punto de vista de la POO expresa las
caractersticas esenciales de un objeto, las cuales distinguen al objeto de los
dems. Adems de distinguir entre los objetos provee lmites conceptuales.
Entonces se puede decir que la encapsulacin separa las caractersticas esenciales
de las no esenciales dentro de un objeto. Si un objeto tiene ms caractersticas de
las necesarias los mismos resultarn difciles de usar, modificar, construir y
comprender.

La misma genera una ilusin de simplicidad dado a que minimiza la


cantidad de caractersticas que definen a un objeto.
Durante aos, los programadores se han dedicado a construir aplicaciones
muy parecidas que resolvan una y otra vez los mismos problemas. Para conseguir
que los esfuerzos de los programadores puedan ser utilizados por otras personas se
cre la POO.
Ejemplos
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.

Você também pode gostar