Sie sind auf Seite 1von 18

UNIVERSIDAD TCNICA NACIONAL

Programacin Orientada a Objetos


[Escribir el subttulo del documento]
Juan Pablo Rodrguez Bogantes

2010

WWW.UTN.AC.CR

WWW.TIUTN.CR.TC

Programacin Orientada a Objetos Programacin Orientada a Objetos .............................................................................................. 3 Cmo se piensa en objetos? ....................................................................................................... 3 Conceptos fundamentales ............................................................................................................. 4 Clase.............................................................................................................................................. 4 Clase Abstracta........................................................................................................................ 4 Clase Base ............................................................................................................................... 5 Clase Derivada ........................................................................................................................ 5 Objeto ............................................................................................................................................ 5 Componentes de un Objeto ....................................................................................................... 6 Atributo ...................................................................................................................................... 6 Mtodo ...................................................................................................................................... 7 Entidad ...................................................................................................................................... 7 Enlace............................................................................................................................................ 8 Asociacin ................................................................................................................................ 8 Agregacin................................................................................................................................ 9 Composicin (Agregacin Mltiple) ...................................................................................... 9 Mensaje:...................................................................................................................................... 10 Componentes del mensaje: ................................................................................................. 10 Abstraccin ................................................................................................................................. 11 Modelado: ................................................................................................................................... 12 Modularidad ................................................................................................................................ 13 Encapsulamiento ....................................................................................................................... 14 Ocultamiento: ............................................................................................................................. 15 Polimorfismo............................................................................................................................... 16 Polimorfismo de sobrecarga ................................................................................................ 16 Polimorfismo de plantillas..................................................................................................... 16 Polimorfismo de redefinicin:............................................................................................... 17 Herencia:..................................................................................................................................... 18

Juan Pablo Rodrguez Bogantes Universidad Tcnica Nacional (UTN)

Programacin Orientada a Objetos

Programacin Orientada a Objetos


La Programacin Orientada a Objetos (POO) es un paradigma de

programacin que usa objetos y sus interacciones para disear aplicaciones y programas de computadora, en este paradigma el objeto es considerado la unidad elemental. Los objetos pueden ser definidos como entes que poseen identidad, comportamiento y estado, este es el principal paradigma en el desarrollo de software, y se caracteriza por la reutilizacin de cdigo, portabilidad, facilidad de desarrollo y mantenimiento.

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 vehculo para tratar de modelarlo en un esquema de POO. Diramos que el vehculo 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 estacionar. Por poner otro ejemplo vamos a ver cmo modelaramos 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 seria el elemento principal y tendr dos propiedades (Atributos), 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 vehculo utilizars objetos vehculo. 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 vehculo ser un objeto que utilizar objetos vehculo, herramienta, mecnico, recambios, etc.

Juan Pablo Rodrguez Bogantes Universidad Tcnica Nacional (UTN)

Programacin Orientada a Objetos

Conceptos fundamentales Clase


Es una plantilla para un conjunto de objetos. Eje: un molde para queques. Describe cmo se estructuran internamente los objetos (Atributos), cules servicios proveen (Mtodos) y cules relaciones comunes tienen con otros objetos (Mensajes). Eje: el molde describe la forma y el tamao de los queques. Los objetos de la misma clase tienen la misma definicin para sus estructuras de informacin y sus operaciones. Eje: todos los vehculos Hyundai tiburn modelo 2000 tienen las mismas caractersticas (Tipo de Combustible, Color, Transmisin), aunque algunas con valores diferentes (Color=Rojo, Amarillo, Verde). Es un modelo de comportamiento de un tipo de objeto que existir durante la ejecucin de un programa orientado a objetos.

Existen 3 tipos de clases:

Clase Abstracta
No permite instanciaciones, es comnmente utilizada como clase base. Eje: podemos definir una clase vehculos, con sus caractersticas y mtodos, pero dependiendo del problema a resolver estos no sern vistos como vehculos en general, sino es diferentes sub divisiones, por lo cual no tendremos 3 vehculos sino 2 automviles (Toyota, Hyundai) y 1 camin (Mercedes Benz).

Juan Pablo Rodrguez Bogantes Universidad Tcnica Nacional (UTN)

Programacin Orientada a Objetos

Clase Base
Clase de las cuales heredaran otras clases, a diferencia de la clase abstracta si permite instancias. Eje: podemos decir que si hablamos del contexto de un taller, lo que se reciben son vehculos en general, por lo cual podemos ver objetos de este tipo o bien podemos ver sus subdivisiones (automvil, camin, etc.).

Clase Derivada
Clase que hereda atributos y mtodos de otra clase (Sper clase), son las clases en las que se dividen las sper clases. Eje: la clase rockwailer es una sub clase de perros, est a su vez es una sub clase de mamferos, y esta lo es de animales, por otro lado la clase profesor de ingles es una subclase de profesor, esta es una subclase de funcionario y esta de persona.

Objeto
Es un concepto o entidad con lmites bien definidos, provista de un conjunto de propiedades o atributos y de comportamiento o funcionalidad (mtodos). Se corresponde con los objetos reales del mundo que nos rodea, o a objetos internos del sistema. Eje: un automvil Toyota, un automvil Hyundai, o un profesor, un estudiantes. Es una instancia a una clase. Posee un estado (Atributos), exhibe un comportamiento (Mtodos) bien definido y posee una identidad nica (Entidad): Objeto = Estado + Comportamiento + Identidad

Juan Pablo Rodrguez Bogantes Universidad Tcnica Nacional (UTN)

Programacin Orientada a Objetos

Un objeto tiene dos aspectos: Externo: Un objeto del mundo real es un conjunto de estados y un conjunto de mensajes aceptables por el objeto (que determinan su comportamiento). Interno: Un objeto software es un conjunto de atributos y mtodos relacionados.

Componentes de un Objeto
Atributo
Es una caracterstica de un objeto (Placa, Marca, Modelo, Tipo de Combustible), definen el estado del objeto (Modelo = 1980, define que el vehculo es viejo), algunos atributos pueden ser constantes (Eje: Marca, si el vehculo es Hyundai, ser Hyundai para siempre), el estado y comportamiento estn relacionados: El estado puede ser modificado cuando el objeto interacta (por medio de mensajes) con otros objetos. Eje: si llevamos nuestro vehculo al taller este interacta con otros objetos como el mecnico, haciendo que el estado del vehculo se modifique.
Juan Pablo Rodrguez Bogantes Universidad Tcnica Nacional (UTN) 6

Programacin Orientada a Objetos

El estado del objeto puede eventualmente determinar el comportamiento del objeto en cuestin. Eje: si el vehculo es Hyundai, modelo 1980, esto puede causar que al ser viejo su rendimiento ya n o sea el mismo de antes.

Mtodo
Acciones o comportamiento de los objetos (Acelerar, Frenar, Encender, Apagar), describen las acciones y reacciones de ese objeto, los mtodos de un objeto se ejecutan como consecuencia de un estmulo externo representado como mensaje enviado desde otro objeto. (Si el usuario pisa el freno, el vehculo disminuye su velocidad hasta detenerse).

Evento Consiste en un tipo mtodo que se encuentra estrechamente vinculado a controles (objetos con caractersticas graficas ligadas a la interface de la aplicacin) y permiten ejecutar acciones en reaccin a estmulos a estos controles, cuando los presiones, cambies el valor de alguna de sus propiedades (Atributos), lo crees o lo destruyas, dependen del lenguaje utilizado.

Entidad
Cada objeto es nico aunque todos provengan de una misma clase. Eje: aunque varios queque sean realizados usando el mismo molde, tengan el mismo tamao, la mismo forma, el mismo sabor, cada uno es un objeto diferente, al igual que si varios vehculos son ensamblados en la misma fbrica, con partes de los mismos proveedores y por las mismas maquinas ensambladoras, cada uno es un vehculo diferente.

Juan Pablo Rodrguez Bogantes Universidad Tcnica Nacional (UTN)

Programacin Orientada a Objetos

Enlace
Se define como una conexin fsica o conceptual entre objetos. Denota la relacin especfica por la cual un objeto (cliente) utiliza los servicios de otro objeto (servidor). Eje: si un conductor ejecuta la accin de pisar el freno, existe una predisposicin de que el vehculo realice la accin de detenerse. De igual manera si una persona presiona el botn de subir el volumen de su televisor existe la disposicin de que el televisor aumente su volumen. Podramos decir que se encuentran preparados para realizar acciones al momento de que otro objeto realice acciones sobre ellos.

Existen tres tipos de Enlaces:

Asociacin
La asociacin denota una relacin igual a igual, ocurre cuando un mtodo de un objeto es llamado desde otro objeto. Podemos decir que es cuando un objeto utiliza otro objeto sin que dicho objeto sea parte de su estructura.

Juan Pablo Rodrguez Bogantes Universidad Tcnica Nacional (UTN)

Programacin Orientada a Objetos

Ejemplo: Control Remoto TV (el control remoto no es parte del TV, pero hace uso del mismo) Persona vehculo (el vehculo no es parte de la persona, pero esta utiliza sus servicios).

Agregacin
Establece un tipo de relacin todo/parte, donde atributo de una clase es una instancia de otra clase.

Ejemplo: Un vehculo dentro de su estructura tiene atributos los cuales son objetos de otra clase como el motor y este pertenece a la estructura del vehculo, el objeto motor es parte del objeto vehculo y este utiliza sus servicios.

Composicin (Agregacin Mltiple)


Estable una relacin de todo/mltiples partes, donde un atributo de una clase es una instancia de otra clase y adems dicho atributo es array (vector).

Juan Pablo Rodrguez Bogantes Universidad Tcnica Nacional (UTN)

Programacin Orientada a Objetos

Ejemplo: Una factura tiene una o muchas lneas de detalle, donde cada lnea de detalle es parte de la estructura pero existen varias. Un vehculo tiene dentro de su estructura una serie de objetos de tipo llantas o puertas, pero no solo posee sino que tienes varias.

Mensaje:
Una comunicacin dirigida a un objeto, que le ordena que ejecute uno de sus mtodos con ciertos parmetros asociados al evento que lo gener, consiste en la ejecucin o utilizacin de un enlace, el cual debe existir previamente. Componentes del mensaje: El objeto destinatario del mensaje: (aqul cuyo mtodo se ejecuta). El nombre del mensaje, que describe la tarea a realizar (el nombre del mtodo).

Juan Pablo Rodrguez Bogantes Universidad Tcnica Nacional (UTN)

10

Programacin Orientada a Objetos

La informacin que el objeto origen enva al destinatario, necesaria para que ste pueda completar su tarea (los parmetros del mtodo).

Ejemplo: TV.cambiarCanal (7), objeto destinatario TV, nombre del mensaje cambiarCanal, informacin 7 Vehiculo.acelerar(100 Kph) objeto destinatario Vehculo, nombre del mensaje acelerar, informacin 100 Kph

Caractersticas de la Programacin Orientada a Objetos Abstraccin


La abstraccin consiste en aislar un elemento de su contexto o 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?". La abstraccin encarada desde el punto de vista de la programacin orientada a objetos 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.

Juan Pablo Rodrguez Bogantes Universidad Tcnica Nacional (UTN)

11

Programacin Orientada a Objetos

La misma genera una ilusin de simplicidad dado a que minimiza la cantidad de caractersticas que definen a un objeto. La POO no es difcil, pero es una manera especial de pensar, a veces subjetiva de quien la programa, de manera que la forma de hacer las cosas puede ser diferente segn el programador. Aunque podamos hacer los programas de formas distintas, no todas ellas son correctas, lo difcil no es programar orientado a objetos sino programar bien. Programar bien es importante porque as nos podemos aprovechar de todas las ventajas de la POO.

Modelado:
Es una tcnica cognitiva que consiste en crear una representacin irreal de un objeto real mediante un conjunto de simplificaciones y abstracciones, cuya validez se pretende constatar. La validacin del modelo se lleva a cabo comparando las implicaciones predichas por el mismo con observaciones. En otras palabras, se trata crear un modelo irreal o ideal que refleja ciertos aspectos de un objeto real, como al crear una escultura o una pintura. Un modelo es por tanto una simplificacin de la realidad que recoge aquellos aspectos de relevancia para las intenciones del modelador. Se modela para comprender mejor o explicar mejor un proceso o unas observaciones. Ejemplo: Volvamos al vehculo y realicemos un modelado... Qu caractersticas (Propiedades o Atributos) tendra el vehculo? A nivel externo 1. Placa. 2. Color. 3. Modelo. 4. Marca.
Juan Pablo Rodrguez Bogantes Universidad Tcnica Nacional (UTN) 12

Programacin Orientada a Objetos

A nivel interno: 1. Motor. 2. Sistema de encendido. 3. Sistema de frenado. 4. Sistema elctrico.

Qu acciones (mtodos, comportamiento) realiza el vehculo que tenga relevancia en el problema planteado? 1. Arrancar. 2. Frenar. 3. Encender las luces. 4. Realizar cambio de luces. 5. Apagar las luces. 6. Entre otros.

Como se puede observar no basamos en lo bsico (que hace) y no profundizamos en el cmo?, esto es abstraccin.

Modularidad
Descomponer la aplicacin en partes ms pequeas. Proceso de crear partes de un todo que se integran perfectamente entre s para que funcionen por un objetivo general, y a las cuales se les pueden agregar ms componentes que se acoplen perfectamente al todo, o extraerle componentes sin afectar su funcionamiento. En el caso que se requiera actualizar un mdulo, no hay necesidad de hacer cambios en otras partes del todo. Ejemplo: Enfoqumonos en la accin de arranque del vehculo.

Juan Pablo Rodrguez Bogantes Universidad Tcnica Nacional (UTN)

13

Programacin Orientada a Objetos

Podemos decir que para que el vehculo arranque deben darse una serie de pasos que pueden estar modulados, y que todos son necesarios para la realizacin de dicha funcin ejemplo: Que la bobina de encendido, de paso a la corriente para que esta encienda la chipa. La chispa es dirigida a la buja. La buja produce la ignicin de sus electrodos. Los electrodos de la buja produce un arco elctrico que enciende el combustible dentro del cilindro. Etc.

Encapsulamiento
Se dice que es el empaquetado de mtodos y atributos dentro de un objeto, mediante una interfaz de mensajes. Es utilizado para esconder detalles de la puesta en prctica no importantes de otros objetos. Entonces, los detalles de la puesta en prctica pueden cambiar en cualquier tiempo sin afectar otras partes del programa, el encapsulamiento se logra gracias a la abstraccin y el ocultamiento que veremos a continuacin. Formas de encapsular: 1. Estndar (Predeterminado) 2. Abierto: Hace que el miembro de la clase pueda ser accedido desde el exterior de la Clase y cualquier parte del programa. 3. Protegido: Solo es accesible desde la Clase y las clases que heredan (a cualquier nivel). 4. Semi cerrado: Solo es accesible desde la clase heredada. 5. Cerrado: Solo es accesible desde la Clases.

Juan Pablo Rodrguez Bogantes Universidad Tcnica Nacional (UTN)

14

Programacin Orientada a Objetos

Ejemplo: Consiste en que todo lo interior, caractersticas y acciones estn encapsuladas en una clase vehculo, de esta forma ocultamos la complejidad, todos sabemos cmo funciona el vehculo, aunque no a nivel interno.

Ocultamiento:
Una vez realizada la modularidad, a travs del encapsulamiento y a la ocultacin, se logra ocultar la informacin o mdulos que no necesitan ser vistos por otros objetos. Hacer que la implementacin de una abstraccin est oculta y que dicha abstraccin solo sea usada por medio de su interfaz permite que la implementacin pueda ser cambiada o hasta sustituida por otra sin alterar para nada los clientes que la usan. La abstraccin y el encapsulamiento son conceptos complementarios. La abstraccin se centra en el comportamiento observable de un objeto, mientras que el encapsulamiento se centra en la implementacin que da lugar a ese comportamiento (mdulos). Ejemplo: Enfoqumonos en la accin de arranque del vehculo que anteriormente modulamos. Decimos que todos los pasos son importantes, pero no es necesario que todos sean vistos desde afuera, imaginemos que el vehculo tuviera por ejemplo un botn con el cual la bobina de encendido de paso a la corriente para que esta encienda la chipa, y otro para la chispa sea dirigida a la buja y as sucesivamente, por eso es que utilizamos el encapsulamiento, para que el usuario solo tenga que girar la llave y el vehculo encienda. De igual forma si en algn momento alguno de los pasos cambia la forma en que se realiza, esto no afecta el proceso total de encendido, ni al usuario ya que el solo gira la llave y enciende, aunque el proceso interno sea diferente.

Juan Pablo Rodrguez Bogantes Universidad Tcnica Nacional (UTN)

15

Programacin Orientada a Objetos

Polimorfismo
Se refiere a la posibilidad de definir mltiples clases con funcionalidad diferente, pero con mtodos o propiedades denominados de forma idntica, que pueden utilizarse de forma similar o diferente. Existen diferentes tipos de polimorfismo:

Polimorfismo de sobrecarga
Varios mtodos con el mismo nombre, pero formas de ejecucin diferentes. Ejemplo: Si tememos una clase FiguraGeometrica y los siguientes mtodos: calcularArea (lado de tipo entero) calcularArea (base de tipo entero, altura de tipo entero)

Como podemos observar ambos tienen el mismo nombre, pero reciben cantidades o tipos de valores diferentes, el primero recibe un solo valor con lo cual podemos calcular el rea de un cuadrado (rea = Lado2), mientras que el segundo recibe dos valores, con lo que podemos calcular el rea de un triangulo o un rectngulo (rea = Base * Altura), en este caso los dos mtodos calcularan el rea de una figura geomtrica, pero lo harn de diferentes maneras (Polimorfismo).

Polimorfismo de plantillas
Consiste en agregar mtodos a una clase derivada sin sustituir algn mtodo ya existente en la clase base. Ejemplo: Si tememos una clase Trapecio la cual hereda de FiguraGeometrica ninguno de los mtodos existentes permite calcular su rea por lo tanto implementamos en la clase trapecio un mtodo nuevo para calcular el rea (rea = [[baseMayor + baseMenor] * altura] / 2) que no interfiere con los existentes ya que posee diferente cantidad o tipo de valores:
Juan Pablo Rodrguez Bogantes Universidad Tcnica Nacional (UTN) 16

Programacin Orientada a Objetos

calcularArea (baseMayor de tipo entero, baseMenor de tipo entero, altura de tipo entero)

Polimorfismo de redefinicin:
Consiste en agregar mtodos a una clase derivada los cuales sustituyen un mtodo de la clase base. Ejemplo: Imaginemos que tenemos una clase rombo que hereda de la clase figuraGeometrica, pero que tambin ninguno de los mtodos existentes en figuraGeometrica nos permiten calcular el rea del rombo, por lo cual redefinimos uno de los mtodos. calcularArea (diagonalMayor de tipo entero, diagonalMenor de tipo entero) Se dice que se da una redefinicin de mtodos mtodo debido a que ya exista un mtodo que reciba dos valores de tipo entero por lo tanto no puede crearse otro igual, la nica solucin es redefinir el existente. Otros Ejemplos: Como sabemos existen muchas variedades de vehculos, en los cuales podemos encontrar los siguientes tipos de polimorfismo: Polimorfismo de sobrecarga: que el vehculo permita encender usando la llave o bien mediante el empuje, en ambos casos el vehculo enciende aunque de formas diferentes. Polimorfismo de plantillas: puede que los vehculos tengan ya definidos algunos mtodos de encendido, pero al momento de crear un vehculo especial creamos un mtodo de encendido desde el llavero para este tipo de vehculo, sin sustituir los mtodos que tienen en general los vehculos.

Juan Pablo Rodrguez Bogantes Universidad Tcnica Nacional (UTN)

17

Programacin Orientada a Objetos

Polimorfismo de redefinicin: supongamos que al crear el vehculo automtico decidimos que la forma de arrancar el vehculo mediante el mtodo de empuje es diferente al de los vehculos en general, entonces lo sustituimos.

Herencia:
Las clases no estn aisladas, sino que se relacionan entre s, formando una jerarqua de clasificacin. La herencia es el mecanismo fundamental de relacin entre clases en la orientacin a objetos, 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. La caracterstica de herencia, permite definir nuevas clases derivadas de otras ya existentes, que la especializan de alguna manera

Existen dos tipos de herencia: Singular: La clase hija deriva de una nica clase padre Mltiple: La clase hija deriva de varias clases padre, no es soportada por todos los lenguajes, puede ser confusa.
Juan Pablo Rodrguez Bogantes Universidad Tcnica Nacional (UTN) 18

Das könnte Ihnen auch gefallen