Anda di halaman 1dari 17

1

Programacin Orientada a Objetos (POO)


La programacin orientada a objetos o POO (OOP segn sus siglas en ingls) es un paradigma de programacin que usa los objetos en sus interacciones, para disear aplicaciones y programas informticos. Est basado en varias tcnicas, incluyendo herencia, cohesin, abstraccin, polimorfismo, acoplamiento y encapsulamiento. Su uso se populariz a principios de la dcada de los aos 1990. En la actualidad, existe variedad de lenguajes de programacin que soportan la orientacin a objetos.

Objeto
En el paradigma de programacin orientada a objetos (POO, o bien OOP en ingls), un objeto se define como la unidad que en tiempo de ejecucin realiza las tareas de un programa. Tambin a un nivel ms bsico se define como la instancia de una clase.

Estos objetos interactan unos con otros, en contraposicin a la visin tradicional en la cual un programa es una coleccin de subrutinas (funciones o procedimientos), o simplemente una lista de instrucciones para el computador. Cada objeto es capaz de recibir mensajes, procesar datos y enviar mensajes a otros objetos de manera similar a un servicio.

En el mundo de la programacin orientada a objetos (POO), un objeto es el resultado de la instanciacin de una clase. Una clase es el anteproyecto que ofrece la funcionalidad en ella definida, pero sta queda implementada slo al crear una instancia de la clase, en la forma de un objeto. Por ejemplo: dado un plano para construir sillas (una clase de nombre clase_silla),

entonces una silla concreta, en la que podemos sentarnos, construida a partir de este plano, sera un objeto de clase_silla. Es posible crear (construir) mltiples objetos (sillas) utilizando la definicin de la clase (plano) anterior.

Clase
En la programacin orientada a objetos, una clase es una construccin que se utiliza como un modelo (o plantilla) para crear objetos de ese tipo. El modelo describe el estado y el comportamiento que todos los objetos de la clase comparten. Un objeto de una determinada clase se denomina una instancia de la clase. La clase que contiene (y se utiliz para crear) esa instancia se puede considerar como del tipo de ese objeto, por ejemplo, una instancia del objeto de la clase "Persona" sera del tipo "Persona".

Una clase por lo general representa un sustantivo, como una persona, lugar o (posiblemente bastante abstracta) cosa - es el modelo de un concepto dentro de un programa de computadora. Fundamentalmente, encapsula el estado y el comportamiento del concepto que representa. Encapsula el estado a travs de marcadores de datos llamados atributos (o variables miembro o variables de instancia), y encapsula el comportamiento a travs de secciones de cdigo reutilizables llamados mtodos.

Ms tcnicamente, una clase es un conjunto coherente que consiste en un tipo particular de metadatos. Una clase tiene tanto una interfaz y una estructura. La interfaz describe cmo interactuar con la clase y sus instancias con mtodos, mientras que la estructura describe cmo los datos se dividen en atributos dentro de una instancia. Una clase tambin puede tener una representacin (metaobjeto) en tiempo de ejecucin, que proporciona apoyo

en tiempo de ejecucin para la manipulacin de los metadatos relacionados con la clase. En el diseo orientado a objetos, una clase es el tipo ms especfico de un objeto en relacin con una capa especfica.

Herencia
En orientacin a objetos la herencia es, despus de la agregacin o composicin, el mecanismo ms utilizado para alcanzar algunos de los objetivos ms preciados en el desarrollo de software como lo son la reutilizacin y la extensibilidad. A travs de ella los diseadores pueden crear nuevas clases partiendo de una clase o de una jerarqua de clases preexistente (ya comprobadas y verificadas) evitando con ello el rediseo, la modificacin y verificacin de la parte ya implementada. La herencia facilita la creacin de objetos a partir de otros ya existentes e implica que una subclase obtiene todo el comportamiento (mtodos) y eventualmente los atributos (variables) de su superclase.

Es la relacin entre una clase general y otra clase ms especifica. Por ejemplo: Si declaramos una clase prrafo derivada de una clase texto, todos los mtodos y variables asociadas con la clase texto, son automticamente heredados por la subclase prrafo.

La herencia es uno de los mecanismos de los lenguajes de programacin orientada a objetos basados en clases, por medio del cual una clase se deriva de otra de manera que extiende su funcionalidad. La clase de la que se hereda se suele denominar clase base, clase padre, superclase, clase ancestro (el vocabulario que se utiliza suele depender en gran medida del lenguaje de programacin).

Encapsulacin
La encapsulacin es un mecanismo que consiste en organizar datos y mtodos de una estructura, conciliando el modo en que el objeto se implementa, es decir, evitando el acceso a datos por cualquier otro medio distinto a los especificados. Por lo tanto, la encapsulacin garantiza la integridad de los datos que contiene un objeto.

Paquete
Los paquetes son una forma de agrupar clases es interfaces asociadas. Habilitan los grupos de clases para estar disponibles slo si son necesarios y eliminan los conflictos potenciales entre los nombres de clases en grupos diferentes de clases.

Ocultamiento de la informacin
El usuario de una clase en particular no necesita saber cmo estn estructurados los datos dentro de ese objeto, es decir, un usuario no necesita conocer la implementacin Al evitar que el usuario modifique los atributos directamente y forzndolo a utilizar funciones definidas para modificarlos (llamadas interfaces), se garantiza la integridad de los datos (por ejemplo, uno puede asegurarse de que el tipo de datos suministrados cumple con nuestras expectativas bien que los se encuentran dentro del periodo de tiempo esperado).

La encapsulacin define los niveles de acceso para elementos de esa clase. Estos niveles de acceso definen los derechos de acceso para los

datos, permitindonos el acceso a datos a travs de un mtodo de esa clase en particular, desde una clase heredada o incluso desde cualquier otra clase. Existen tres niveles de acceso:

Pblico: funciones de toda clase pueden acceder a los datos o mtodos de una clase que se define con el nivel de acceso pblico. Este es el nivel de proteccin de datos ms bajo.

Protegido: el acceso a los datos est restringido a las funciones de clases heredadas, es decir, las funciones miembro de esa clase y todas las subclases.

Privado: el acceso a los datos est restringido a los mtodos de esa clase en particular. Este es nivel ms alto de proteccin de datos.

Sistemas de Tipos
Un sistema de tipos define como un lenguaje de programacin clasifica los valores y las expresiones en tipos, cmo se pueden manipular estos tipos y cmo interactan. Un tipo indica un conjunto de valores que tienen el mismo significado genrico o propsito (aunque algunos tipos, como los tipos de datos abstractos y tipos de datos funcin, tal vez no representen valores en el programa que se est ejecutando). Los sistemas de tipificacin varan significativamente entre lenguajes, siendo quizs las ms importantes variaciones las que estn en sus implementaciones de la sintctica en tiempo de compilacin y la operativa en tiempo de ejecucin.

Un compilador puede usar el tipo esttico de un valor para optimizar el almacenamiento que necesita y la eleccin de los algoritmos para las operaciones sobre ese valor. Por ejemplo, en muchos compiladores de C el

tipo de dato "flotante" se representa en 32 bits, de acuerdo con la especificacin IEEE para los nmeros de coma flotante de simple precisin. Entonces, C usa operaciones especficas de coma flotante sobre estos valores (suma de coma flotante, multiplicacin, etc.).

Sobrecarga
En programacin orientada a objetos la sobrecarga se refiere a la posibilidad de tener dos o ms funciones con el mismo nombre pero funcionalidad diferente. Es decir, dos o ms funciones con el mismo nombre realizan acciones diferentes. El compilador usar una u otra dependiendo de los parmetros usados. A esto se llama tambin sobrecarga de funciones.

Tambin existe la sobrecarga de operadores que al igual que con la sobrecarga de funciones se le da ms de una implementacin a un operador.

Sobrecarga es la capacidad de un lenguaje de programacin, que permite nombrar con el mismo identificador diferentes variables u operaciones.

Polimorfismo
Polimorfismo, como la misma palabra lo indica, significa mltiples formas. Existen muchos tipos de polimorfismo, pero en general una referencia polimrfica en un lenguaje orientado a objetos es una que atae a instancias de ms de una clase a travs del tiempo. As, una funcin polimrfica es aquella que puede ser aplicada uniformemente a cierta variedad de objetos.

Abstraccin de tipos
En programacin, el trmino se refiere al nfasis en el "qu hace?" ms que en el "cmo lo hace?" (Caracterstica de caja negra). 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.

A grandes rasgos, la abstraccin, permite que dispongamos de las caractersticas de un objeto que necesitemos. Si necesitamos el objeto Persona, podramos poner nombre, edad, direccin, estado civil, etc. Si lo necesitamos en un sistema administrativo, pero, si lo requerimos para el rea de biologa, dentro de sus atributos quiz tengamos, ADN, RND, Gen x1, Gen x2, etc. Y los atributos antes mencionados no sean requeridos. En general, podemos decir que Persona cuenta con todos los atributos mencionados aqu, pero, por el proceso de abstraccin excluimos todos aquellos, que no tiene cabida en nuestro sistema. Se define como un mtodo por el cual rescata los datos relevantes e ignora los datos irrelevantes.

Tipos de Datos Abstractos (TDA)


Un tipo de dato abstracto (TDA) o Tipo abstracto de datos (TAD) es un modelo matemtico compuesto por una coleccin de operaciones definidas sobre un conjunto de datos para el modelo.

Con mucha frecuencia se utilizan los trminos TDA y Abstraccin de Datos de manera equivalente, y esto es debido a la similitud e

interdependencia de ambos. Sin embargo, es importante definir por separado los dos conceptos.

Como ya se mencion, los Lenguajes de Programacin Orientados a Objetos son lenguajes formados por diferentes mtodos o funciones y que son llamados en el orden en que el programa lo requiere, o el usuario lo desea. La abstraccin de datos consiste en ocultar las caractersticas de un objeto y obviarlas, de manera que solamente utilizamos el nombre del objeto en nuestro programa. Esto es similar a una situacin de la vida cotidiana. Cuando yo digo la palabra perro, usted no necesita que yo le diga lo que hace el perro. Usted ya sabe la forma que tiene un perro y tambin sabe que los perros ladran. De manera que yo abstraigo todas las caractersticas de todos los perros en un solo trmino, al cual llamo perro. A esto se le llama Abstraccin y es un concepto muy til en la programacin, ya que un usuario no necesita mencionar todas las caractersticas y funciones de un objeto cada vez que ste se utiliza, sino que son declaradas por separado en el programa y simplemente se utiliza el trmino abstracto (perro) para mencionarlo.

TDA Complejo
Un nmero complejo es un objeto matemtico que se puede representar como una pareja ordenada, por ejemplo (2,3) o como el polinomio 2 + 3i, donde i es la unidad bsica de los nmeros imaginarios.

Los nmeros complejos tienen operaciones como las de suma, resta y multiplicacin. Si tenemos dos complejos c1=(r1,i1) y c2=(r2,i2), las operaciones se pueden definir de la siguiente manera:

C1 + C2 = (r1 + r2, i1 + i2) C1 - C2 = (r1 - r2, i1 - i2)

Diseo de invariante
El invariante de un TAD establece una nocin de validez para cada uno de sus objetos abstractos, en trminos de condiciones sobre su estructura interna y sus componentes. Esto es, indica en qu casos un objeto abstracto modela un elemento posible del mundo del problema. Por ejemplo, para el TDA Conjunto y la notacin { x1, ..., xN }, el invariante debe exigir que todos los xi pertenezcan al mismo tipo de dato, y que sean diferentes entre s, para que un objeto abstracto est modelando realmente un conjunto. Estructuralmente, el invariante est compuesto por condiciones que restringen el dominio de los componentes internos y por relaciones entre ellos.

Diseo de las operaciones


En el diseo de la estructura y comportamiento de objetos se identifican los componentes siguientes:

Clases que se implantarn. Los tipos de objetos en el AEO sern la gua en esta decisin. Estructuras de Datos que utilizar cada clase. Se puede hacer un diagrama para representar la estructura de datos. Operaciones que ofrecer cada clase y cules sern sus mtodos. Se enumeran las operaciones y se especifican los mtodos.

10

Forma de Implantacin de la herencia de clases y efecto sobre las especificaciones de los datos y operaciones. Identificacin de variantes de clases ("igual que, excepto...").

Implementacin del TDA


Suponga que debe resolver el problema de verificar si dado 2 nmeros complejos su suma y multiplicacin son iguales.

Claramente un nmero complejo requiere una estructura de datos simple, como un registro o estructura, para manejar el par ordenados de nmero reales como su parte real e imaginaria. Para resolver el problema, luego es necesario calcular la suma y la resta de los dos nmeros y luego ver si estos resultados son el mismo nmero complejo.

11

12

En l se han identificado las instrucciones que manipular directamente los datos (de color rojo) y las instrucciones de control (de color azul), es decir aquellas que no manipulan datos y que manejan el flujo, las condiciones, los ciclos, los retornos dentro del programa.

Cmo se puede observar, las instrucciones de color rojo deben tomar en cuenta la estructura de datos Complejo, su definicin, el nombre y tipos de los campos, y las posibles operaciones o funciones que se les pueden aplicar a los nmeros complejos. De la misma forma, tambin se puede observar que las instrucciones en azul permiten obtener interaccin con la consola de entrada y/o salida, controlar las salidas condicionadas que requiere el problema.

Si se necesita resolver otros problemas como por ejemplo: obtener la sumatoria de las partes reales de un arreglo de nmeros complejos, o bien ordenar un arreglo de complejos por la parte imaginaria, o bien obtener la productoria o sumatoria del arreglo, entre otros posibles; estas instrucciones en azul cambiaran segn los requerimientos. Sin embargo, en estos problemas las instrucciones para manipular los datos, las resaltadas en rojo, seran iguales pues la definicin de la estructura, la manera de tener acceso, la operacin de suma, multiplicacin y comparacin se realizan de la misma manera sobre la estructura Complejo que se ha definido.

Bibliografa
https://programacionorientadaaobjetos.wordpress.com/tag/paquetes/ http://es.kioskea.net/contents/poo/encapsul.php3 http://html.rincondelvago.com/visual-basic-5_0.html http://www2.ing.puc.cl/~iic11021/materia/cap12.htm http://cupi2.uniandes.edu.co/libros/estructuras_de_datos/index.php?option=c om_content&view=article&id=193&Itemid=189 http://usuarios.multimania.es/manualesjava/manuales/poo/poo.pdf http://webdelprofesor.ula.ve/ingenieria/dhh/ProgramacionO.O.pdf http://webdelprofesor.ula.ve/ingenieria/hyelitza/materias/programacion2/tda/P R2-tema1-TDA.pdf

Introduccin
La orientacin a objetos es un paradigma de programacin que facilita la creacin de software de calidad por sus factores que potencian el mantenimiento, la extensin y la reutilizacin del software generado bajo este paradigma.

La programacin orientada a objetos trata de amoldarse al modo de pensar del hombre y no al de la mquina. Esto es posible gracias a la forma racional con la que se manejan las abstracciones que representan las entidades del dominio del problema, y a propiedades como la jerarqua o el encapsulamiento.

El elemento bsico de este paradigma no es la funcin (elemento bsico de la programacin estructurada), sino un ente denominado objeto. Un objeto es la representacin de un concepto para un programa, y contiene toda la informacin necesaria para abstraer dicho concepto: los datos que describen su estado y las operaciones que pueden modificar dicho estado, y determinan las capacidades del objeto.

Conclusin
El Paradigma de Programacin Orientado a Objetos es una tcnica de programacin que usa objetos y sus interacciones para disear aplicaciones y buenos programas de computadora. Este paradigma proporciona una forma particular de programar, ms cercana a la manera de como expresamos las cosas en la vida real.

En la programacin orientada a objetos tenemos que disear nuestros programas en trminos de objetos, propiedades y mtodos. Estos conforman los elementos principales de este paradigma. 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.

En la programacin convencional los programas se dividen en dos componentes: Procedimientos y Datos. Las estructuras de datos utilizadas en programacin son globales o se pasan como parmetros. En esencia los datos se tratan separadamente de los procedimientos. En la programacin orientada a objetos se combinan los datos y los procedimientos en una entidad nica.

Podemos decir tambin, que este paradigma es una disciplina de diseo de software que facilita la construccin de sistemas a travs de componentes individuales llamados clases de objetos.

ndice
Pg.: Introduccin Programacin Orientada a Objetos (POO) Objeto Clase Herencia Encapsulacin Paquete Ocultamiento de la informacin Sistemas de Tipos Sobrecarga Polimorfismo Abstraccin de tipos Tipos de Datos Abstractos (TDA) TDA Complejo Diseo de invariante Diseo de las operaciones Implementacin del TDA Conclusin Bibliografa 1 1 2 3 4 4 4 5 6 6 7 7 8 9 9 10

Repblica Bolivariana de Venezuela Ministerio del Poder Popular para la Defensa Universidad Nacional Experimental Politcnica de la Fuerza Armada Bolivariana UNEFAB Extensin Puerto Pritu

Profesor: Rhonald Rodrguez

Bachilleres: Rubn Marcano C.I.: 20.252.929 Ery Canache C.I.: 14.910.443

Puerto Pritu, octubre de 2012