Está en la página 1de 66

Programacin Orientada a Objetos

Introduccin a la P.O.O.
La programacin orientada a objetos es una filosofa, un modelo de programacin, con su teora y su metodologa, que conviene conocer y estudiar antes de nada. Un lenguaje orientado a objetos es un lenguaje de programacin que permite el diseo de aplicaciones orientadas a objetos.

Dicho esto, lo normal es que toda persona que vaya a desarrollar aplicaciones orientadas a objetos aprenda primero la filosofa (o adquiera la forma de pensar) y despus el lenguaje, porque filosofa slo hay una y lenguajes muchos.

Programacin Orientada a Objetos


Introduccin a la P.O.O.
Es muy importante destacar que cuando hacemos referencia a la programacin orientada a objetos no estamos hablando de unas cuantas caractersticas nuevas aadidas a un lenguaje de programacin. Estamos hablando de una nueva forma de pensar acerca del proceso de descomposicin de problemas y de desarrollo de soluciones de programacin. La programacin orientada a objetos surge en la historia como un intento para dominar la complejidad que, de forma innata, posee el software.

Programacin Orientada a Objetos


Introduccin a la P.O.O.
Tradicionalmente, la forma de enfrentarse a esta complejidad ha sido empleando lo que llamamos programacin estructurada, que consiste en descomponer el problema objeto de resolucin en sub problemas y ms sub problemas hasta llegar a acciones muy simples y fciles de codificar. Se trata de descomponer el problema en acciones. En el ejemplo de un programa que resuelva ecuaciones de segundo grado, descomponamos el problema en las siguientes acciones: primero, pedir el valor de los coeficientes a, b y c; despus, calcular el valor del discriminante; y por ltimo, en funcin del signo del discriminante, calcular ninguna, una o dos races.

Programacin Orientada a Objetos


Introduccin a la P.O.O.
Como podemos ver, descomponamos el problema en acciones, en verbos; por ejemplo el verbo pedir, el verbo hallar, el verbo comprobar, el verbo calcularetc. La programacin orientada a objetos es otra forma de descomponer problemas. Este nuevo mtodo de descomposicin es la descomposicin en objetos; vamos a fijarnos no en lo que hay que hacer en el problema, sino en cul es el escenario real del mismo, y vamos a intentar simular ese escenario en nuestro programa.

Programacin Orientada a Objetos


Introduccin a la P.O.O.
Los lenguajes de programacin tradicionales no orientados a objetos, como C, Pascal, BASIC, o Modula-2, basan su funcionamiento en el concepto de procedimiento o funcin. Una funcin es simplemente un conjunto de instrucciones que operan sobre unos argumentos y producen un resultado. De este modo, un programa no es ms que una sucesin de llamadas a funciones, ya sean stas del sistema operativo, proporcionadas por el propio lenguaje, o desarrolladas por el mismo usuario.

Programacin Orientada a Objetos


Introduccin a la P.O.O.
En el caso de los lenguajes orientados a objetos, como es el caso de C++ y Java, el elemento bsico no es la funcin, sino un ente denominado precisamente objeto. Un objeto es la representacin en un programa de un concepto, y contiene toda la informacin necesaria para abstraerlo: datos que describen sus atributos y operaciones que pueden realizarse sobre los mismos. La programacin orientada a objetos es una nueva forma de pensar, una manera distinta de enfocar los problemas. Ah radica la dificultad de aprender un lenguaje totalmente orientado a objetos, como es Java, sin conocer previamente los pilares de la programacin orientada a objetos.

Programacin Orientada a Objetos


Introduccin a la P.O.O.
Hecha esta importante aclaracin, conviene destacar que Java, ms que un lenguaje orientado a objetos, es un lenguaje de objetos. Java incorpora el uso de la orientacin a objetos como uno de los pilares bsicos y fundamentales del lenguaje. Esto constituye una importante diferencia con respecto a C++. C++ est pensado para su utilizacin como lenguaje orientado a objetos, pero tambin es cierto que con C++ se puede escribir cdigo sin haber odo nada de la programacin orientada a objetos. Esta situacin no se da en Java, dotado desde las primeras etapas de su diseo de esta filosofa, y donde no cabe obviar la orientacin a objetos para el desarrollo de programas, por sencillos que stos sean. En Java nada se puede hacer sin usar al menos un objeto.

Programacin Orientada a Objetos


Introduccin a la P.O.O.
Si nos detenemos a pensar sobre cmo se nos plantea un problema cualquiera en la realidad podremos ver que lo que hay en la realidad son entidades (otros nombres que podramos usar para describir lo que aqu llamo entidades son agentes u objetos). Estas entidades poseen un conjunto de propiedades o atributos, y un conjunto de mtodos mediante los cuales muestran su comportamiento. Y no slo eso, tambin podremos descubrir, a poco que nos fijemos, todo un conjunto de interrelaciones entre las entidades, guiadas por el intercambio de mensajes; las entidades del problema responden a estos mensajes mediante la ejecucin de ciertas acciones.

Programacin Orientada a Objetos


Introduccin a la P.O.O.
Imaginemos la siguiente situacin: un domingo por la tarde estoy en casa viendo la televisin, y de repente mi madre siente un fuerte dolor de cabeza; como es natural, lo primero que hago es tratar de encontrar una caja de aspirinas. Lo que acabo de describir es una situacin que probablemente no resulte muy extraa a muchos de nosotros. Vamos a verla en clave de objetos: el objeto hijo ha recibido un mensaje procedente del objeto madre. El objeto hijo responde al mensaje o evento ocurrido mediante una accin: buscar aspirinas. La madre no tiene que decirle al hijo dnde debe buscar, es responsabilidad del hijo resolver el problema como considere ms oportuno.

Programacin Orientada a Objetos


Introduccin a la P.O.O.
Al objeto madre le basta con haber emitido un mensaje. El hijo no encuentra aspirinas en el botiqun y decide acudir a la farmacia de guardia ms cercana para comprar aspirinas. En la farmacia es atendido por una seorita que le pregunta qu desea, a lo que el hijo responde: "una caja de aspirinas, por favor". La farmacutica desaparece para regresar al poco tiempo con una caja de aspirinas en la mano. El hijo paga el importe, se despide y vuelve a su casa. All le da un comprimido a su madre, la cual al cabo de un rato comienza a experimentar una notable mejora hasta la completa desaparicin del dolor de cabeza.

Programacin Orientada a Objetos


Introduccin a la P.O.O.
El hijo, como objeto responsable de un cometido, sabe lo que debe hacer hasta conseguir una aspirina. Para ello entra en relacin con un nuevo objeto, la farmacutica, quien responde al mensaje o evento de peticin del objeto hijo con la bsqueda de la aspirina. El objeto farmacutica es ahora el responsable de la bsqueda de la aspirina. El objeto farmacutica lanza un mensaje al objeto hijo solicitando el pago del importe, y el objeto hijo responde a tal evento con la accin de pagar.

Programacin Orientada a Objetos


Introduccin a la P.O.O.
Como hemos podido ver, en esta situacin nos hemos encontrado con objetos que se diferenciaban de los dems por un conjunto de caractersticas o propiedades, y por un conjunto de acciones que realizaban en respuesta a unos eventos que se originaban en otros objetos o en el entorno. Tambin podemos darnos cuenta de que, aunque todos los objetos tienen propiedades distintas, como el color del cabello, el grado de simpata o el peso, todos tienen un conjunto de atributos en comn por ser ejemplos de una entidad superior llamada ser humano. A este patrn de objetos (en nuestro caso ser humano) lo llamaremos clase.

Programacin Orientada a Objetos


Introduccin a la P.O.O.
Con este ejemplo espero que se entienda que los objetos son instancias o casos concretos de las clases, que no son ms que plantillas que definen las variables y los mtodos comunes a todos los objetos de un cierto tipo. La clase ser humano tendr, entre sus muchas variables miembro o variables que la componen: color del cabello, color de los ojos, estatura, peso, fecha de nacimiento, etc. A partir de una clase se podrn generar todos los objetos que se deseen especificando valores particulares para cada una de las variables definida por la clase. As, encontraremos el objeto farmacutica, cuyo color de cabello es rubio, color de ojos azul, estatura 175 cm., peso 50 Kg., y as sucesivamente.

Programacin Orientada a Objetos


Ventajas de la Programacin Orientada a Objetos
--

Programacin Orientada a Objetos


Tipos de Datos
--

Programacin Orientada a Objetos


Definicin de una Clase: Atributos y Metodos
Normalmente en el mundo real existen varios objetos de un mismo tipo, o como diremos enseguida, de una misma clase. Por ejemplo, mi bicicleta es una de las muchas bicicletas que existen en el mundo. Usando la terminologa de la programacin orientada a objetos, diremos que mi bicicleta es una instancia de la clase de objetos conocida como bicicletas. Todas las bicicletas tienen algunos estados o atributos (color, marcha actual, cadencia actual, dos ruedas) y algunos mtodos (cambiar de marcha, frenar) en comn. Sin embargo, el estado particular de cada bicicleta es independiente del estado de las dems bicicletas. La particularizacin de estos atributos puede ser diferente.

Programacin Orientada a Objetos


Definicin de una Clase: Atributos y Metodos
Es decir, una bicicleta podr ser azul, y otra roja, pero ambas tienen en comn el hecho de tener una variable color. De este modo podemos definir una plantilla de variables y mtodos para todas las bicicletas. Las plantillas para crear objetos son denominadas clases. Una clase es una plantilla que define las variables y los mtodos que son comunes para todos los objetos de un cierto tipo. En nuestro ejemplo, la clase bicicleta definira variables miembro comunes a todas las bicicletas, como la marcha actual, la cadencia actual, etc. Esta clase tambin debe declarar e implementar los mtodos o funciones miembro que permiten al ciclista cambiar de marcha, frenar, y cambiar la cadencia de pedaleo.

Programacin Orientada a Objetos


Definicin de una Clase: Atributos y Mtodos
Velocidad Actual Cambiar Marcha

Cadencia Actual

Frenar

Color

Marcha Actual Cambiar Cadencia

Programacin Orientada a Objetos


Definicin de una Clase: Atributos y Mtodos
Despus de haber creado la clase bicicleta, podemos crear cualquier nmero de objetos bicicleta a partir de la clase. Cuando creamos una instancia de una clase, el sistema reserva suficiente memoria para el objeto con todas sus variables miembro. Cada instancia tiene su propia copia de las variables miembro definidas en la clase.

Programacin Orientada a Objetos


Definicin de una Clase: Atributos y Mtodos
Velocidad Actual = 20
Cadencia Actual = 90
Frenar
Frenar

Cambiar Marcha

Cambiar Marcha

Velocidad Actual = 30
Cadencia Actual = 180

Color= Rojo
Cambiar Cadencia
Cambiar Cadencia

Color= Azul Marcha Actual= 2

Marcha Actual= 4

MiBicileta

TuBicicleta

Programacin Orientada a Objetos


Modificadores de Acceso
Los atributos describen el estado del objeto. Un atributo consta de dos partes, un nombre de atributo y un valor de atributo. Los objetos simples pueden constar de tipos primitivos, tales como enteros, caracteres, boolen, etc. Los objetos complejos pueden constar de pilas, conjuntos, listas, arrays, etc, o incluso de estructuras recursivas de alguno o todos de sus elementos.

Programacin Orientada a Objetos


Modificadores de Acceso
Los mtodos describen el comportamiento asociado a un objeto. La ejecucin de un mtodo puede conducir a cambiar el estado del objeto o dato local del objeto. Cada mtodo tiene un nombre y un cuerpo que realiza la accin o comportamiento asociado con el nombre del mtodo. En un LPOO, el cuerpo de un mtodo consta de un bloque de cdigo procedimental que ejecuta la accin requerida. Un mtodo dentro de un objeto se activa por un mensaje que se enva por otro objeto al objeto que contiene el mtodo. Del mismo modo, se puede llamar a un mtodo de un objeto a travs de otro mtodo de ese mismo objeto.

Programacin Orientada a Objetos


Modificadores de Acceso
Uno de los principios de la programacin orientada a objetos es la encapsulacin, que es un proceso por el que se ocultan las caractersticas internas de un objeto a aquellos elementos que no tienen porque conocerla. Los modificadores de acceso sirven para indicar los permisos que tendrn otros objetos para acceder a sus mtodos y propiedades.

Public Protected Private

Programacin Orientada a Objetos


Modificadores de Acceso: - Public Es el nivel de acceso ms permisivo. Sirve para indicar que el mtodo o atributo de la clase es pblico. En este caso se puede acceder a ese atributo, para visualizarlo o editarlo, por cualquier otro elemento de nuestro programa. Es el modificador que se aplica si no se indica otra cosa.

Programacin Orientada a Objetos


Modificadores de Acceso: - Private Es el nivel de acceso ms restrictivo. Sirve para indicar que esa variable slo se va a poder acceder desde el propio objeto, nunca desde fuera. Si intentamos acceder a un mtodo o atributo declarado private desde fuera del propio objeto, obtendremos un mensaje de error indicando que no es posible a ese elemento.

Programacin Orientada a Objetos


Modificadores de Acceso: - Protected Este indica un nivel de acceso medio y un poco ms especial que los anteriores. Sirve para que el mtodo o atributo sea pblico dentro del cdigo de la propia clase y de cualquier clase que herede de aquella donde est el mtodo o propiedad protected. Es privado y no accesible desde cualquier otra parte. Es decir, un elemento protected es pblico dentro de la propia clase y en sus heredadas.

Programacin Orientada a Objetos


Modificadores de Acceso Conclusin
Muchas veces el propio desarrollador es el que fija su criterio a la hora de aplicar los distintos modificadores de acceso a atributos y mtodos. Poca proteccin implica que los objetos pierdan su encapsulacin y con ello una de las ventajas de la POO. Una proteccin mayor puede hacer ms laborioso de generar el cdigo del programa, pero en general es aconsejable.

Programacin Orientada a Objetos


Objetos y variables de referencia
Un objeto no es ms que un conjunto de variables (o datos) y mtodos (o funciones) relacionados entre s. Los objetos en programacin se usan para modelar objetos o entidades del mundo real (el objeto hijo, madre, o farmacutica, por ejemplo). Un objeto es, por tanto, la representacin en un programa de un concepto, y contiene toda la informacin necesaria para abstraerlo: datos que describen sus atributos y operaciones que pueden realizarse sobre los mismos.

Programacin Orientada a Objetos


Objetos y variables de referencia: Definicin a considerar
A b s t r a c c i n consiste en captar las caractersticas esenciales de un objeto, as como su comportamiento. Por ejemplo, los automviles, Qu caractersticas podemos abstraer de los automviles? O lo que es lo mismo Qu caractersticas semejantes tienen todos los automviles? Todos tendrn una marca, un modelo, nmero de chasis, peso, llantas, puertas, ventanas, etc. Y en cuanto a su comportamiento todos los automviles podrn acelerar, frenar, retroceder, etc. En los lenguajes de programacin orientada a objetos, el concepto de Clase es la representacin y el mecanismo por el cual se gestionan las abstracciones.

Programacin Orientada a Objetos


Objetos y variables de referencia

Programacin Orientada a Objetos


Objetos y variables de referencia
Los atributos del objeto (estado) y lo que el objeto puede hacer (comportamiento) estn expresados por las variables y los mtodos que componen el objeto respectivamente. Por ejemplo, un objeto que modelase una bicicleta en el mundo real tendra variables que indicaran el estado actual de la bicicleta: su velocidad es de 20 km/h, su cadencia de pedaleo 90 r.p.m. y su marcha actual es la 5. Estas variables se conocen formalmente como variables instancia o variables miembro porque contienen el estado de un objeto bicicleta particular y, en programacin orientada a objetos, un objeto particular se denomina una instancia.

Programacin Orientada a Objetos


Objetos y variables de referencia
Adems de estas variables, el objeto bicicleta podra tener mtodos para frenar, cambiar la cadencia de pedaleo, y cambiar de marcha (la bicicleta no tendra que tener un mtodo para cambiar su velocidad pues sta es funcin de la cadencia de pedaleo, la marcha en la que est y de si los frenos estn siendo utilizados o no, entre otros muchos factores). Estos mtodos se denominan formalmente mtodos instancia o mtodos miembro, ya que cambian el estado de una instancia u objeto bicicleta particular.

Programacin Orientada a Objetos


Objetos y variables de referencia

Programacin Orientada a Objetos


Objetos y variables de referencia
El diagrama del objeto bicicleta muestra las variables objeto en el ncleo o centro del objeto y los mtodos rodeando el ncleo y protegindolo de otros objetos del programa. Este hecho de empaquetar o proteger las variables miembro con los mtodos miembro se denomina encapsulacin. Este dibujo conceptual que muestra el ncleo de variables miembro del objeto protegido por una membrana protectora de mtodos o funciones miembro es la representacin ideal de un objeto y es el ideal que los programadores de objetos suelen buscar.

Programacin Orientada a Objetos


Objetos y variables de referencia
Sin embargo, debemos matizarlo. A menudo, por razones prcticas, es posible que un objeto desee exponer alguna de sus variables miembro, o proteger otras de sus propios mtodos o funciones miembro. Por ejemplo, Java permite establecer 4 niveles de proteccin de las variables y de las funciones miembro para casos como ste. Los niveles de proteccin determinan qu objetos y clases pueden acceder a qu variables o a qu mtodos.

Programacin Orientada a Objetos


Objetos y variables de referencia

Poner variables referencia

aqu de

Programacin Orientada a Objetos


Comunicacin entre Objetos: Mensajes
Los objetos realizan acciones cuando ellos reciben mensajes. El mensaje es esencialmente una orden que se enva a un objeto para indicarle que realice alguna accin. Esta tcnica de enviar mensajes a objetos se denomina paso de mensajes. Mensajes y mtodos son dos caras de la misma moneda. Los mtodos son los procedimientos que se invocan cuando un objeto recibe un mensaje. En terminologa de programacin tradicional, un mensaje es una llamada a una funcin.

Programacin Orientada a Objetos


Comunicacin entre Objetos: Mensajes
Normalmente un nico objeto por s solo no es muy til. En general, un objeto aparece como un componente ms de un programa o una aplicacin que contiene otros muchos objetos. Es precisamente haciendo uso de esta interaccin como los programadores consiguen una funcionalidad de mayor orden y modelar comportamientos mucho ms complejos. Una bicicleta colgada de un gancho en el garaje no es ms que una estructura de aleacin de titanio y un poco de goma. Por s sola, tu bicicleta (por poner una bicicleta en concreto) es incapaz de desarrollar ninguna actividad. Tu bicicleta es realmente til en tanto que otro objeto (t) interacta con ella (pedalea).

Programacin Orientada a Objetos


Comunicacin entre Objetos: Mensajes
Los objetos de un programa interactan y se comunican entre ellos por medio de mensajes. Cuando un objeto A quiere que otro objeto B ejecute una de sus funciones miembro (mtodos de B), el objeto A manda un mensaje al objeto B.

Programacin Orientada a Objetos


Comunicacin entre Objetos: Mensajes
En ocasiones, el objeto que recibe el mensaje necesita ms informacin para saber exactamente lo que tiene que hacer; por ejemplo, cuando se desea cambiar la marcha de una bicicleta, se debe indicar la marcha a la que se quiere cambiar. Esta informacin se pasa junto con el mensaje en forma de parmetro La siguiente figura muestra las tres partes que componen un mensaje: El objeto al cual se manda el mensaje (TuBicicleta). El mtodo o funcin miembro que debe ejecutar (CambiarDeMarcha). Los parmetros que necesita ese mtodo (Marcha)

Programacin Orientada a Objetos


Comunicacin entre Objetos: Mensajes

Programacin Orientada a Objetos


Comunicacin entre Objetos: Mensajes
Estas tres partes del mensaje (objeto destinatario, mtodo y parmetros) son suficiente informacin para que el objeto que recibe el mensaje ejecute el mtodo o la funcin miembro solicitada. Los mensajes proporcionan dos ventajas importantes: El comportamiento de un objeto est completamente determinado (a excepcin del acceso directo a variables miembro pblicas) por sus mtodos, as que los mensajes representan todas las posibles interacciones que pueden realizarse entre objetos.

Programacin Orientada a Objetos


Comunicacin entre Objetos: Mensajes
Los objetos no necesitan formar parte del mismo proceso, ni siquiera residir en un mismo ordenador para mandarse mensajes entre ellos (y de esta forma interactuar). Cuando un objeto est inactivo y recibe un mensaje se hace activo. El mensaje enviado por otros objetos tiene asociado un mtodo que se activar cuando el receptor recibe dicho mensaje. La peticin no especifica cmo se realiza la operacin. Tal informacin se oculta siempre al emisor.

Programacin Orientada a Objetos


Herencia
El mecanismo de herencia permite definir nuevas clases partiendo de otras ya existentes. Las clases que derivan de otras heredan automticamente todo su comportamiento, pero adems pueden introducir caractersticas particulares propias que las diferencian. Como hemos visto, los objetos se definen a partir de clases. Con el mero hecho de conocer a qu clase pertenece un objeto, ya se sabe bastante sobre l. Puede que no sepamos lo que es la Espada, pero si nos dicen que es una bicicleta, ya sabremos que tiene dos ruedas, manillar, pedales...

Programacin Orientada a Objetos


Herencia
La programacin orientada a objetos va ms all, permitindonos definir clases a partir de otras clases ya construidas. Por ejemplo, las bicicletas de montaa, las de carretera y los tndems son todos, en definitiva, bicicletas. En trminos de programacin orientada a objetos, son subclases o clases derivadas de la clase bicicleta. Anlogamente, la clase bicicleta es la clase base o superclase de las bicicletas de montaa, las de carretera y los tndems. Esta relacin se muestra en la siguiente figura.

Programacin Orientada a Objetos


Herencia

Programacin Orientada a Objetos


Herencia
Cada subclase hereda los estados (en forma de declaracin de variables) de la superclase de la cual deriva. Las bicicletas de montaa, las de carretera y los tndems comparten algunos estados: cadencia, velocidad... Adems, cada subclase hereda los mtodos de su superclase. Las bicicletas de montaa, las de carretera y los tndems comparten algunos comportamientos: frenar y cambiar la cadencia de pedaleo, por ejemplo.

Programacin Orientada a Objetos


Herencia
Sin embargo, las clases derivadas no se encuentran limitadas por los estados y comportamientos que heredan de su superclase. Muy al contrario, estas subclases pueden aadir variables y mtodos a aquellas que han heredado. Los tndems tienen dos asientos y dos manillares; algunas bicicletas de montaa tienen una catalina adicional con un conjunto de marchas con relaciones de transmisin mucho ms cortas. Las clases derivadas pueden incluso sobrescribir los mtodos heredados y proporcionar implementaciones ms especializadas para esos mtodos. Por ejemplo, si nuestra bicicleta de montaa tuviera una catalina extra, podramos sobrescribir el mtodo CambiarDeMarcha para poder usar esas nuevas marchas.

Programacin Orientada a Objetos


Herencia
Adems, no estamos limitados a un nico nivel de herencia. El rbol de herencias o jerarqua de clases puede ser tan extenso como necesitemos. Los mtodos y las variables miembro se heredarn hacia abajo a travs de todos los niveles de la jerarqua. Normalmente, cuanto ms abajo est una clase en la jerarqua de clases, ms especializado es su comportamiento. En nuestro ejemplo, podramos hacer que la clase bicicleta derivase de una superclase de vehculos.

Programacin Orientada a Objetos


Herencia
La herencia es una herramienta clave para abordar la resolucin de un problema de forma organizada, pues permite definir una relacin jerrquica entre todos los conceptos que se estn manejando. Es posible emplear esta tcnica para descomponer un problema de cierta magnitud en un conjunto de problemas subordinados a l. La resolucin del problema original se consigue cuando se han resuelto cada uno de los problemas subordinados, que a su vez pueden contener otros. Por consiguiente, la capacidad de descomponer un problema o concepto en un conjunto de objetos relacionados entre s cuyo comportamiento es fcilmente identificable puede ser extraordinariamente til para el desarrollo de programas informticos.

Programacin Orientada a Objetos


Herencia
La herencia proporciona las siguientes ventajas: Las clases derivadas o subclases proporcionan comportamientos especializados a partir de los elementos comunes que hereda de la clase base. A travs del mecanismo de herencia los programadores pueden reutilizar el cdigo de la superclase tantas veces como sea necesario.

Programacin Orientada a Objetos


Herencia
Los programadores pueden implementar las llamadas superclases abstractas, que definen comportamientos genricos. Las clases abstractas definen e implementan parcialmente comportamientos, pero gran parte de estos comportamientos no se definen ni se implementan totalmente. De esta forma, otros programadores pueden hacer uso de estas superclases detallando esos comportamientos con subclases especializadas. El propsito de una clase abstracta es servir de modelo base para la creacin de otras clases derivadas, pero cuya implantacin depende de las caractersticas particulares de cada una de ellas.

Programacin Orientada a Objetos


Clases Abstractas e Interfaces
Las denominadas clases abstractas son las que representan el mayor grado de abstraccin. De hecho, las clases abstractas presentan un nivel de "abstraccin" tan elevado que no sirven para instanciar objetos de ellas. Representan los escalones ms elevados de algunas jerarquas de clases y solo sirven para derivar otras clases, en las que se van implementando detalles y concreciones, hasta que finalmente presentan un nivel de definicin suficiente que permita instanciar objetos concretos. Se suelen utilizar en aquellos casos en que se quiere que una serie de clases mantengan una cierta caracterstica o interfaz comn.

Programacin Orientada a Objetos


Clases Abstractas e Interfaces

Programacin Orientada a Objetos


Clases Abstractas e Interfaces
ATENCIN: Las clases que hereden de la clase Abstracta deben implementar todos los mtodos abstractos. Se debe tener presente que las clases abstractas s pueden heredar de otras clases. Los parmetros de los mtodos as como el tipo de dato deben respetarse, de lo contrario se est hablando de otro mtodo totalmente diferente.

Programacin Orientada a Objetos


Clases Abstractas e Interfaces

Investigar sobre las Interfaces

Programacin Orientada a Objetos


Polimorfismo
--

Programacin Orientada a Objetos


Diseo Orientado a Objetos
Diseo orientado a objetos es una fase de la metodologa orientada a objetos para el desarrollo de Software. Su uso induce a los programadores a pensar en trminos de objetos, en vez de procedimientos, cuando planifican su cdigo. Un objeto agrupa datos encapsulados y procedimientos para representar una entidad. La 'interfaz del objeto', esto es, las formas de interactuar con el objeto, tambin es definida en esta etapa. Un programa orientado a objetos es descrito por la interaccin de esos objetos. El diseo orientado a objetos es la disciplina que define los objetos y sus interacciones para resolver un problema de negocio que fue identificado y documentado durante el anlisis orientado a objetos.

Programacin Orientada a Objetos


Lenguaje Unificado Modelado: UML
El Lenguaje de Modelamiento Unificado (UML - Unified Modeling Language) es un lenguaje grfico para visualizar, especificar y documentar cada una de las partes que comprende el desarrollo de software. UML entrega una forma de modelar cosas conceptuales como lo son procesos de negocio y funciones de sistema, adems de cosas concretas como lo son escribir clases en un lenguaje determinado, esquemas de base de datos y componentes de software reusables.

Programacin Orientada a Objetos


Casos de Uso
El diagrama de casos de uso representa la forma en como un Cliente (Actor) opera con el sistema en desarrollo, adems de la forma, tipo y orden en como los elementos interactan (operaciones o casos de uso). Un diagrama de casos de uso consta de los siguientes elementos:

Actor. Casos de Uso. Relaciones de Uso, Herencia y Comunicacin.

Programacin Orientada a Objetos


Casos de Uso: Actor
Una definicin previa, es que un Actor es un rol que un usuario juega con respecto al sistema. Es importante destacar el uso de la palabra rol, pues con esto se especifica que un Actor no necesariamente representa a una persona en particular, sino ms bien la labor que realiza frente al sistema. Como ejemplo a la definicin anterior, tenemos el caso de un sistema de ventas en que el rol de Vendedor con respecto al sistema puede ser realizado por un Vendedor o bien por el Jefe de Local.

Programacin Orientada a Objetos


Casos de Uso: Actor
Su representacin grafica es la siguiente:

Programacin Orientada a Objetos


Casos de Uso: Caso de Uso
Es una operacin/tarea especfica que se realiza tras una orden de algn agente externo, sea desde una peticin de un actor o bien desde la invocacin desde otro caso de uso.

La representacin grafica es la siguiente

Programacin Orientada a Objetos


Casos de Uso: Relaciones
Las tres relaciones principales entre los casos de uso son soportadas por el estndar UML, el cual describe notacin grfica para esas relaciones. Veamos una revisin de ellas a continuacin: Asociacin Es el tipo de relacin ms bsica que indica la invocacin desde un actor o caso de uso a otra operacin (caso de uso). Dicha relacin se denota con una flecha simple.

Programacin Orientada a Objetos


Casos de Uso: Relaciones
Dependencia o Instanciacin Es una forma muy particular de relacin entre clases, en la cual una clase depende de otra, es decir, se instancia (se crea). Dicha relacin se denota con una flecha punteada.

Generalizacin Este tipo de relacin es uno de los ms utilizados, cumple una doble funcin dependiendo de su estereotipo, que puede ser de Uso (<<uses>>) o de Herencia (<<extends>>).

Programacin Orientada a Objetos


Casos de Uso: Relaciones
Este tipo de relacin (Generalizacin) esta exclusivamente para casos de uso (y no para actores). orientado

extends: Se recomienda utilizar cuando un caso de uso es similar a otro (caractersticas).


uses: Se recomienda utilizar cuando se tiene un conjunto de caractersticas que son similares en ms de un caso de uso y no se desea mantener copiada la descripcin de la caracterstica.

También podría gustarte