0% encontró este documento útil (0 votos)
131 vistas19 páginas

Programación Orientada A Objetos

El documento explica conceptos básicos de programación orientada a objetos como clases, instancias, atributos, relaciones entre objetos y clases, características como abstracción, encapsulamiento, polimorfismo y herencia. También introduce conceptos de UML como diagramas de clases e instancias.
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
131 vistas19 páginas

Programación Orientada A Objetos

El documento explica conceptos básicos de programación orientada a objetos como clases, instancias, atributos, relaciones entre objetos y clases, características como abstracción, encapsulamiento, polimorfismo y herencia. También introduce conceptos de UML como diagramas de clases e instancias.
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 19

Bachillerato en Ciencias de la Educacin

Curso: Programacin II

Programacin Orientada a Objetos

Profesor. Ing. Rodolfo Echandi Pacheco

Ivania Corrales Castro

II cuatrimestre, 2012

INDICE
Introduccin ........................................................................................................................... 5 Programacin orientada a Objetos ........................................................................................ 7 Conceptos bsicos .................................................................................................................. 7 Clase .................................................................................................................................... 7 Instancia.............................................................................................................................. 8 Atributo............................................................................................................................... 8 Relacin entre los objetos y clases ........................................................................................ 9 Caractersticas de la programacin orientada a objetos. ...................................................... 9 Abstraccin ......................................................................................................................... 9 Encapsulamiento ................................................................................................................ 9 Principio de ocultacin ....................................................................................................... 9 Polimorfismo ...................................................................................................................... 9 Herencia .............................................................................................................................. 9 Fundamentos de UML .......................................................................................................... 10 Diagramas de instancia ........................................................................................................ 10 Diagramas de clase ........................................................................................................... 10
Representacin de relaciones de clases.................................................................................... 11 Dependencia o Instanciacin (uso) .......................................................................................... 11 Asociacin ................................................................................................................................. 11 Composicin ............................................................................................................................. 12 Agregacin ................................................................................................................................ 12 Generalizacin ........................................................................................................................... 13 Realizacin ................................................................................................................................ 13

Diagramas de objetos ....................................................................................................... 14 Diagramas de Casos de Uso .............................................................................................. 14 Diagramas de Estados....................................................................................................... 14 Diagramas de Secuencia ................................................................................................... 15 Diagramas de Colaboracin .............................................................................................. 16 Diagramas de actividades ................................................................................................. 16 Diagramas de componentes ............................................................................................. 17 Diagramas de despliegue.................................................................................................. 19 Conclusin ............................................................................................................................ 20 Bibliografa ........................................................................................................................... 21

1. Un trabajo que explique que es Herencia y Polimorfismo en la programacin orientada a objetos. Incluir programas que ejemplifiquen los conceptos. 2. Un trabajo de cmo se manejan las excepciones en el lenguaje JAVA. Incluir un programa que ejemplifique lo investigado. 3. Un trabajo que indique cmo funcionan las interfaces en JAVA, el mismo debe incluir las siguientes interfaces: formularios, contenedores, ventanas y mens. Favor entregarlo lo antes posible.

Introduccin

Con el presente documento intentar dar una breve explicacin sobre la programacin orientada a objetos tambin llamada POO por sus siglas en ingls (object-orientedprogramming) y algunos conceptos bsicos relacionados; as cabe mencionar que la POO es un paradigma de programacin, pero qu entendemos por "paradigma de programacin"? A ttulo personal es una forma de ver las cosas o de entender un problema o una situacin tratando de identificar los conceptos relevantes presentes, esto significa reconocer las caractersticas y las acciones (mtodos) que realizan dichos conceptos. A la abstraccin de estos conceptos se le conoce como entidad. Este modelo de programacin permite un soporte sintctico explcito para la abstraccin de datos, cambia el punto de vista y aparece el concepto de objeto, el cual es un tipo abstracto de datos con estado (atributos) y comportamiento (operaciones) propios; aparece el concepto de jerarqua de tipos, y con l: herencia de estructura y funcionalidad, sintaxis del lenguaje, objeto, funciones que ms adelante detallar un poco ms. Como lo mencion anteriormente no pretendo profundizar mucho sino esbozar al lector acerca del tema.

Primeramente comenzar con la definicin de algunos conceptos bsicos y ejemplos muy simples. Para entender mejor el tema es necesario tambin hablar un poco del Lenguaje Unificado del Modelado (UML), sus fundamentos y diagramas.

Programacin orientada a Objetos Conceptos bsicos Clase Son los objetos que un lenguaje de programacin como Java utiliza para soportar la programacin orientada a objetos. Una clase permite definir propiedades y mtodos relacionados entre s. Las propiedades son las variables que almacenan el estado de la clase y los mtodos son los programas que se utilizan para consultar y modificar el contenido de las propiedades.1 Tambin, una clase describe un conjunto de objetos con atributos (propiedades o estado) y comportamiento similares (mtodos).
Una clase es un conjunto de datos y un conjunto de operaciones, que deben ir unidas. Datos Atributos Mtodos

Miembros
Operaciones

Ejemplo en Java:

Bobadilla Sancho, J. Travs de ejemplos

Instancia Una instancia u objeto de una clase es una representacin concreta y especfica de una clase y que reside en la memoria del ordenador. Las instancias de un tipo cualquiera se denominan variables, mientras que las instancias de una clase se denominan objetos. Instanciar un objeto significa asignarle un espacio de memoria a ese objeto y ejecutar su constructor(salvo las clases abstractas ).Es decir luego de reservar un espacio de memoria para el objeto se procede a ejecutar uno de los constructores de la clase acorde a los parmetros de la misma. Para poder instanciar un objeto primero es necesario declararlo. Las variables de instancia tambin denominados miembros dato, son declaradas en la clase pero sus valores son fijados y cambiados en el objeto. Ejemplo en Java:
Instanciacin del objeto cuenta1

Atributo Los atributos son las caractersticas individuales que diferencian un objeto de otro y determinan su apariencia, estado u otras cualidades. Los atributos se guardan en variables denominadas de instancia, y cada objeto particular puede tener valores distintos para estas variables. Los atributos de una clase representan los datos miembro. El valor de los atributos representan el estado de cada objeto. Un atributo consta de dos partes: nombre del atributo y valor. Los atributos de una clase pueden ser: - de cualquier tipo bsico (int, float, bool,) - de tipo compuesto (estructura ) - un puntero - un array - objetos de otra clase

Relacin entre los objetos y clases Esta relacin radica principalmente al instanciar, o sea asignar los valores a los atributos porque las acciones son comunes a todos los objetos que se crean a partir de la clase. Los mtodos describen el comportamiento de los objetos de una clase. Representan las operaciones que se pueden realizar con los objetos de la clase. La ejecucin de un mtodo puede conducir a cambiar el estado del objeto. Caractersticas de la programacin orientada a objetos. Abstraccin Cada objeto en el sistema sirve como modelo de un agente abstracto que puede realizar trabajo, informar y cambiar su estado, y comunicarse con otros objetos en el sistema sin revelar cmo se implementan estas caractersticas. Los procesos, las funciones o los mtodos pueden tambin ser abstrados y cuando lo estn, una variedad de tcnicas son requeridas para ampliar una abstraccin. Encapsulamiento Significa reunir a 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. 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. El aislamiento protege a las propiedades de un objeto contra su modificacin por quien no tenga derecho a acceder a ellas, solamente los propios mtodos internos del objeto pueden acceder a su estado. 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. 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 reimplementar su comportamiento.

Fundamentos de UML UML: Unified Modelling Language, es un lenguaje de modelado unificado basado en una notacin grfica la cual permite: especificar, construir, visualizar y documentar. Proporciona un lenguaje comn para simplificar el conjunto de elementos del sistema y comunicarlos entre los diversos implicados (stateholders). Es un lenguaje de modelado construye modelos precisos no ambiguos y completos y cabe aclarar que no es un mtodo. Cubre la especificacin de todas las decisiones de anlisis, diseo e implementacin en un sistema con gran cantidad de software. Diagramas de instancia Diagramas de clase El diagrama de clase describe los tipos de objetos que hay en el sistema y las diversas clases de relaciones estticas que existen entre ellos. Hay dos tipos principales de relaciones estticas: Asociaciones (por ejemplo, un cliente puede rentar diversas videocintas). Subtipos (una enfermera es un tipo de persona). Los diagramas de clase tambin muestran los atributos y operaciones de una clase y las restricciones a que se ven sujetos, segn la forma en que se conecten los objetos. Un diagrama de clases sirve para visualizar las relaciones entre las clases que involucran el sistema, las cuales pueden ser asociativas, de herencia, de uso y de agregacin. Un diagrama de clases est compuesto por los siguientes elementos: Clase: atributos, mtodos y visibilidad. Relaciones: Herencia, Composicin, Agregacin, Asociacin y Uso. Representacin de una clase <Nombre clase> Una clase se representan como un rectngulo dividido en tres partes (tres compartimentos). En el compartimento superior, centrado, va el nombre de la clase. El segundo compartimento contiene los atributos, en la forma: <Atributos> <Operaciones o mtodos>

visibilidad nombreAtributo: tipo El tercer compartimento contiene los mtodos, en la forma: visibilidad nombreMtodo(parmetros): tipoRetorno. Los parmetros van separados por comas y slo se especifica el tipo. Los constructores no tienen tipo de retorno. La visibilidad, de atributos y mtodos, puede ser: privado, + pblico, # protegido y ~ de paquete. Representacin de relaciones de clases Las relaciones son abstracciones que actan de unin entre los elementos. En las relaciones se habla de una clase destino y de una clase origen. La origen es desde la que se realiza la accin de relacionar. Es decir desde la que parte la flecha, la destino es la que recibe la flecha. Las relaciones se pueden modificar con estereotipos o con restricciones. Dependencia o Instanciacin (uso) Representa un tipo de relacin muy particular, en la que una clase es instanciada (su instanciacin es dependiente de otro objeto/clase). Se denota por una flecha punteada. El uso ms particular de este tipo de relacin es para denotar la dependencia que tiene una clase de otra, como por ejemplo una aplicacin grafica que instancia una ventana (la creacin del Objeto Ventana est condicionado a la instanciacin proveniente desde el objeto Aplicacin): Ejemplo

Cabe destacar que el objeto creado (en este caso la Ventana grfica) no se almacena dentro del objeto que lo crea (en este caso la Aplicacion). Asociacin Las asociaciones representan relaciones entre instancias de clases. La relacin entre clases conocida como Asociacin, permite asociar objetos que colaboran entre s. Cabe destacar que no es una relacin fuerte, es decir, el tiempo de vida de un objeto no depende del otro.

Se representa mediante una lnea continua, que une las dos clases. Podemos indicar el nombre, multiplicidad en los extremos, su rol, y agregacin. El nombre es identificado como un nombre a los finales de la lnea, la multiplicidad describe la cardinalidad de la relacin, es decir, cuanto objetos de esa clase pueden participar en la relacin dada. Por ejemplo: uno o muchos: 1..* (1..n) 0 o muchos: 0..* (0..n) nmero fijo: m (m denota el nmero) muchos * cero a uno 0..1 uno y solo uno 1 Ejemplo Un cliente puede tener asociadas muchas Ordenes de Compra, en cambio una orden de compra solo puede tener asociado un cliente. Composicin Una composicin es un tipo de agregacin, la cual determina una restriccin. Cada componente de una agregacin puede pertenecer tan solo a un todo. Esto se representa de igual forma que una agregacin, con la diferencia de que el rombo esta rellenado. Se denota dibujando un rombo del lado de la clase que contiene a la otra en la relacin. El tiempo de vida del objeto incluido est condicionado por el tiempo de vida del que lo incluye. Agregacin La agregacin es una forma particular de asociacin que expresa un acoplamiento ms fuerte entre clases. La agregacin permite representar relaciones del tipo todo y partes o compuesto y componentes. Ejemplo

Generalizacin Es una relacin entre una clase ms general y una ms especfica o especializada. Es una relacin en la que el elemento generalizado puede ser substituido por cualquiera de los elementos hijos, ya que comparten su estructura y comportamiento. Consiste en factorizar los elementos comunes (atributos, operaciones y restricciones) de un conjunto de clases en una clase ms general llamada superclase. La generalizacin desde la perspectiva de implementacin se asocia con la herencia en los lenguajes de programacin. La subclase hereda todos los mtodos y campos de la superclase y puede suplantarlos. Ejemplo

Realizacin Es una relacin que implica que la parte realizante cumple con una serie de especificaciones propuestas por la clase realizada (interfaces). Es decir, una realizacin es la relacin entre una clase y una interfaz. Una interfaz define las capacidades o habilidades de un objeto. Por ejemplo, el teclado de la computadora est basada en la presin de las teclas de igual forma que el teclado una mquina de escribir. La operacin bsica (teclazo) es comn para ambos tipos de teclado, sin embargo el teclado de computadora tiene otras operaciones como ctrl, alt, etc. Podramos decir que el teclado de la mquina de escribir es una interfaz del teclado de computadora pues define al habilidad de teclazo. Esto en UML se representara as:

Diagramas de objetos Un objeto es una instancia de clase. El smbolo es un rectngulo como en una clase pero el nombre est subrayado. Los diagramas de objetos no muestran la multiplicidad ni los roles, aunque su notacin es similar a los diagramas de clase. Su principal caracterstica es que el nombre de la instancia se encuentra a la izquierda de los :, y el nombre de la clase a la derecha y se representa as:
MiAuto: Automvil Marca = Nissan Color = oro

Diagramas de Casos de Uso Es en esencia una interaccin tpica entre un usuario y un sistema de cmputo. Es una descripcin de las acciones de un sistema desde el punto de vista del usuario. Es una tcnica de aciertos y errores para obtener los requerimientos del sistema desde la visin del usuario y se obtiene hablando con los usuarios habituales y analizando con ellos las distintas cosas que deseen hacer con el sistema. Usuario = actor Elipse = caso de uso El actor que inicia el caso de uso puede ser una persona u otro sistema.

En cualquier momento, un objeto se encuentra en un estado en particular. Diagramas de Estados Son una tcnica para describir el comportamiento de un sistema. Describen todos los estados posibles en los que puede entrar un objeto particular y la manera en que cambia el estado del objeto, como resultado de los eventos que llegan a l. Ejemplo

Diagramas de Secuencia Pertenece al grupo de diagramas de interaccin, los cuales son modelos que describen la manera en que colaboran grupos de objetos para cierto comportamiento. En un diagrama de secuencia, un objeto se muestra como caja en la parte superior de una lnea vertical punteada. Esta lnea vertical se llama lnea de vida del objeto. la lnea de vida representa la vida del objeto durante la interaccin. Cada mensaje se representa mediante una flecha entre lneas de vida de dos objetos. El orden en el que se dan estos mensajes transcurre de arriba hacia abajo. Cada mensaje es etiquetado por lo menos con el nombre del mensaje; pueden incluirse tambin los argumentos y alguna informacin de control, y se puede mostrar la autodelagacin, que es un mensaje que un objeto se enva a s mismo, regresando la flecha de mensaje de vuelta a la misma lnea de vida. Ejemplo

Diagramas de Colaboracin En los diagramas de colaboracin, los objetos ejemplo se muestran como conos. Las flechas indican como en los diagramas de secuencia, los mensajes enviados dentro del caso de uso. Sin embargo, en esta ocasin la secuencia se indica numerando los mensajes. El enumerar los mensajes dificulta ms ver la secuencia que poner lneas verticales en la pgina. Pero la disposicin espacial del diagrama permite mostrar otras cosas mejor. Se puede mostrar cmo se vinculan entre ellos los objetos y emplear la disposicin para sobre poner paquetes u otra informacin. Ejemplo

Diagramas de actividades Estos diagramas combinan ideas de varias tcnicas, es muy parecido a los viejos diagramas de flujo, pues muestra los pasos o actividades, as como puntos de decisin y bifurcaciones. Lo que hacen es mostrar una visin simplificada de lo que ocurre durante una operacin o proceso. Se puede decir que es una extensin del diagrama de estados. El diagrama de estados muestra los estados de un objeto y representa las actividades como flechas que conectan a los estados. Por su parte, el diagrama de actividades resalta, precisamente, las actividades. Los diagramas de actividades pueden permitir tomar decisiones .Es posible tambin modelar actividades que sern ejecutadas al mismo tiempo (es decir, de forma concurrente) y que luego se renan. Para representar esto, se utiliza una lnea gruesa perpendicular a la transicin y las rutas parten de ella. Para representar la reincorporacin, ambas rutas apuntan a otra lnea gruesa.

Elementos principales:

Ejemplo

En este diagrama la actividad Poner el caf en el filtro va seguida por la actividad Poner filtro en la mquina. De Encuentra bebida salen dos disparadores, cada uno tiene un guardia, una expresin lgica que se evala como "verdadero" o "falso", del mismo modo que en un diagrama de estados. En este caso la persona seguir la actividad Encuentra bebida considerando las opciones de caf o refresco de cola.

Diagramas de componentes Los diagramas de componentes describen los elementos fsicos del sistema y sus relaciones. Muestran las opciones de realizacin incluyendo cdigo fuente, binario y ejecutable.

Los componentes representan todos los tipos de elementos software que entran en la fabricacin de aplicaciones informticas. Pueden ser simples archivos, paquetes, bibliotecas cargadas dinmicamente, etc. Normalmente un mismo componente se puede implementar por ms de una clase, por lo que la representacin de un componente abarca una gran parte del sistema. Aunque no siempre representan el sistema completo ya que se este se suele dividir en varios diagramas. La representacin grfica es la siguiente:

Estereotipos Estndar de Componentes executable: especifica un componente ejecutable en un nodo. library: especifica una biblioteca de objetos. table: especifica una tabla de una BD. file: especifica un componente que contiene un documento con cdigo fuente o datos. document: especifica un componente que representa un documento. Un componente posee caractersticas similares a una clase: tiene nombre, realiza interfaces, puede participar de relaciones, puede tener instancias, puede participar en interacciones. Un componente representa un elemento fsico (bits). Una clase es una abstraccin lgica. El componente se puede representar en nodos fsicos y la clase no, las operaciones de un componente solo se alcanzan a travs de interfaces. Las de una clase podran ser accesibles directamente. Una interfaz contiene una coleccin de operaciones y se utiliza para especificar los servicios de una clase o de un componente, se conecta al componente que la implementa a travs de una relacin de realizacin, y al componente que utiliza sus servicios con una dependencia.

Diagramas de despliegue Despliegue es un tipo de diagrama del que se utiliza para modelar el hardware utilizado en las implementaciones de sistemas y las relaciones entre sus componentes. Un diagrama de despliegue muestra las relaciones fsicas entre los componentes hardware y software en el sistema final, es decir, la configuracin de los elementos de procesamiento en tiempo de ejecucin y los componentes software(procesos y objetos que se ejecutan en ellos). Los diagramas de despliegue muestran el hardware sobre el que se ejecutar el sistema y cmo el software se despliega en ese hardware. y la configuracin de los nodos que participan en la ejecucin y de los artefactos que residen en los nodos.

Conclusin
Este trabajo me ha dado una idea bastante clara acerca de algunos conceptos de la programacin orientada a objetos. Como el concepto de abstraccin y lo importante y natural que resulta entender y visualizar diagramas usando el lenguaje UML. Aunque el trabajo representa solo una pincelada del lo que es el UML y su aplicacin al POO si me qued claro su utilidad para el diseo y desarrollo de programas en cualquier escala. Tambin considero que mediante esta tcnica se muestra de una forma ms natural los problemas y as se concibe un mejor entendimiento del entorno. Con esta tcnica considero que se facilita la reutilizacin de cdigo, adems no hay un desarrollo estructurado sino un diseo basado en comportamientos y en respuesta a eventos hacindolo ms natural al hombre. A modo de resumen podemos mencionar algunas ventajas de la POO como son: Reutilizacin de cdigo, datos separados del diseo, entendimiento del programa en el mundo real, fcil entendimiento de la lgica del programa, fcil en el mantenimiento, entre otros pero tambin existen algunas desventajas como que podra ser un poco complejo adaptarse al modelo o sea el cambio de la forma de pensar de la programacin tradicional a la orientada a objetos, La necesidad de utilizar bibliotecas de clases obliga a y aprendizaje y entendimiento.

Bibliografa
Bobadilla, S. J & Sancho, H. (2003).JAVA A TRAVES DE EJEMPLOS. Ra-Ma, Madrid. Folleto de Casos de Uso, profesor Nicols Nez, Universidad Americana, Sede San Jos. http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/clases1/clases.htm, consultada el 22 de mayo del 2012. http://www.nebrija.es/~abustind/Informatica/MetodologiaII/Introduccion.pdf, consultada el 23 de mayo del 2012. http://www.gratisblog.com/index.php?itemid=130291, consultada el 24 de mayo del 2012. http://usuarios.multimania.es/oopere/uml.htm, consultada el 24 de mayo del 2012. http://www.dcc.uchile.cl/~psalinas/uml/modelo.html, consultada el 28 de mayo del 2012. http://www.usmp.edu.pe/publicaciones/boletin/fia/info67/UML.pdf, consultada el 28 de mayo del 2012. http://www.dsi.uclm.es/asignaturas/42530/pdf/M2tema12.pdf, consultada el 29 de mayo del 2012.

También podría gustarte