Você está na página 1de 23

TALLER DE LENGUAJES II

Cursada 2013
Profesoras: Claudia Queiruga, Laura Fava JTP: Vanessa Aybar Rosales Ayudantes: Matas Brown Bertneche, Luciano Nomdedeu y Andrs Vazzano Pgina de la ctedra: https://asignaturas.linti.unlp.edu.ar

TALLER DE LENGUAJES II
Horarios
Teora: Lunes 14:00hs - 16:00hs AULA 1.2 Trabajos Prcticos: Lunes 16:00hs - 18:00hs Jueves 16:00hs - 18:00hs AULA 8 (PB)
Taller de Lenguajes II Ingeniera en Computacin 2013 Prof. Claudia Queiruga - Prof. Laura Fava

TALLER DE LENGUAJES II
Tema de la clase de hoy: Conceptos de Programacin Orientada a Objetos

Taller de Lenguajes II Ingeniera en Computacin 2013

Prof. Claudia Queiruga - Prof. Laura Fava

MODELAMOS UN PROBLEMA USANDO UN ENFOQUE OO


Supongamos que se quiere desarrollar un sitio de venta de bicicletas on line. Cmo delimitamos el alcance del problema o dominio del problema? - Relevamiento de las necesidades de los usuarios -> Requerimientos Cmo resolvemos el problema a partir de los requerimientos con un anlisis orientado a objetos? - Descubrir o identificar las entidades del dominio del problema -> Objetos - Identificar relaciones entre las entidades -> Taxonoma de Objetos Los nombres de los objetos generalmente son sustantivos, por ejemplo bicicleta, orden de compra, alumno, reloj, etc Cmo modelamos los objetos? - Identificar las caractersticas comunes de los objetos. Pensar en las partes que conforman el objeto, las cuales son generalmente reconocidas como sustantivos. Por ejemplo, las partes de una bicicleta podran ser: cuadro, asiento, pedal, cadena, llantas, etc. - Identificar las operaciones de los objetos. Son acciones que los objetos saben hacer. Generalmente son verbos o combinaciones de verbos y sustantivos, por ejemplo, las bicicletas saben arrancar, acelerar y frenar.
Taller de Lenguajes II Ingeniera en Computacin 2013 Prof. Claudia Queiruga - Prof. Laura Fava

IDENTIFICAR OBJETOS
Podemos mirar a nuestro alrededor y observar muchos objetos del mundo real: un perro, un escritorio, un televisor, una bicicleta, una computadora, etc. Estos son objetos fsicos que podemos tocar; tambin hay objetos abstractos como pueden ser una orden de compras, una cuenta bancaria, el salario, una figura geomtrica. Para determinar los objetos del dominio de nuestro problema, es necesario analizar su relevancia dentro del problema.

Una vez identificados los objetos, debemos identificar sus atributos y operaciones.
Los atributos son las caractersticas de los objetos. Por ejemplo podran ser su tamao, forma, color, etc. A los valores de todos los atributos de un objeto se los denomina estado del objeto. Por ejemplo un objeto podra tener el valor rojo en el atributo color y, grande en el atributo tamao. Las operaciones son las acciones que los objetos saben hacer. Por ejemplo un objeto sabe dibujarse en la pantalla o acelerar su velocidad o imprimirse. Las operaciones pueden modificar los valores de los atributos. A todas las operaciones que un objeto puede realizar se las denomina comportamiento del objeto. Por ejemplo un objeto podra tener una operacin que cambie su color, otra que calcule una distancia a otro objeto, otra que lo dibuje en la pantalla, etc.
Taller de Lenguajes II Ingeniera en Computacin 2013 Prof. Claudia Queiruga - Prof. Laura Fava

IDENTIFICAR ATRIBUTOS Y OPERACIONES


Objetos concretos:
Caractersticas OO de una bicicleta : atributos: cuadro, asiento, pedal, color, llantas, etc. comportamiento: acelerar, realizar un cambio, frenar, etc. estado de una bicicleta: cuadro de aluminio, pedal doble, color rojo, llantas de aluminio, asiento ergonmico, etc Caractersticas OO de un perro: atributos: nombre, color, raza, etc. comportamiento: ladrar, correr, jugar, etc. estado de un perro: de nombre RITA, color negra, raza galgo, etc
. Objetos abstractos: Caractersticas OO de una cuenta bancaria: atributos: nroDeCuenta, titulares, saldo, etc. comportamiento: depositar, extraer, consultarSaldo, etc. estado de una cuenta bancarias: nmero 23479054-11, titular Juan Prez, saldo $23456.90
Taller de Lenguajes II Ingeniera en Computacin 2013 Prof. Claudia Queiruga - Prof. Laura Fava

RESUMIENDO.
Desde la visin OO, los objetos permiten modelar problemas del mundo real. Resolver un problema usando un anlisis orientado a objetos requiere identificar los objetos de acuerdo a su relevancia en el dominio del problema.
Los objetos se caracterizan por tener estado y comportamiento.

Taller de Lenguajes II Ingeniera en Computacin 2013

Prof. Claudia Queiruga - Prof. Laura Fava

EJEMPLO DE MODELADO OO
Se quiere modelar el uso de un ascensor en un edificio. El edificio tiene 3 pisos en los que habitan 9 familias. El ascensor es usado por todas aquellas personas que ingresan al edificio.
Qu objetos podemos identificar?

Taller de Lenguajes II Ingeniera en Computacin 2013

Personas Ascensor Departamento Edificio Portn de entrada Ventanas


Prof. Claudia Queiruga - Prof. Laura Fava

RECONOCER LOS OBJETOS DEL DOMINIO DEL PROBLEMA


Es importante identificar a los objetos y quedarnos solamente con aquellos que son de nuestro inters para el problema que estamos modelando.

Dependiendo del contexto y punto de vista de quien modela, es el resultado del modelo obtenido.
Hay que tener en cuenta la relevancia para el dominio del problema.

Taller de Lenguajes II Ingeniera en Computacin 2013

Prof. Claudia Queiruga - Prof. Laura Fava

IDENTIFICAMOS LOS OBJETOS DE NUESTRO PROBLEMA


Para nuestro problema slo son relevantes los siguientes objetos:

Persona Ascensor Departamento Edificio Portn de entrada Portero Ventanas

Taller de Lenguajes II Ingeniera en Computacin 2013

Prof. Claudia Queiruga - Prof. Laura Fava

IDENTIFICAMOS LOS ATRIBUTOS Y EL COMPORTAMIENTO


Cmo describimos al objeto Persona?
Atributos nombre apellido edad domicilio documento Comportamiento sabe decir cmo se llama sabe decir cuntos aos tiene sabe decir en qu piso vive sabe su nmero de Documento

Buena prctica: utilizar nombres de atributos y de operaciones que describan claramente al atributo y a la operacin
Taller de Lenguajes II Ingeniera en Computacin 2013 Prof. Claudia Queiruga - Prof. Laura Fava

IDENTIFICAMOS LOS ATRIBUTOS Y EL COMPORTAMIENTO


Cmo describimos al objeto Ascensor?

Atributos piso actual estado puerta (abierta / cerrada) cantidad de ocupantes mxima cantidad de ocupantes piso Mximo piso Mnimo

Comportamiento subir bajar abrir la puerta cerrar la puerta responder a un llamado

Taller de Lenguajes II Ingeniera en Computacin 2013

Prof. Claudia Queiruga - Prof. Laura Fava

INTERACCIN ENTRE OBJETOS


Los objetos tienen estado y comportamiento, pero Cmo se comunican entre ellos? Envindose mensajes
Consideremos a una persona, Mara, que usa el ascensor de su edificio para llegar a su departamento. Cules son los mensajes que Mara utiliza para comunicarse con el ascensor de su edificio?
1 - AntenderLlamado

2 Abrir la puerta
3 Cerrar la puerta 4 Subir (piso) 5 Abrir puerta

emisor
Taller de Lenguajes II Ingeniera en Computacin 2013

6 Cerrar puerta

receptor
Prof. Claudia Queiruga - Prof. Laura Fava

INTERACCIN ENTRE OBJETOS

En esta secuencia podemos observar la interaccin existente entre los dos objetos que hemos identificado:
Mara se comunica con el ascensor de su edificio:

1 A travs de un mensaje, lo llama

2 El ascensor tiene la responsabilidad de atender el


llamado yendo al piso desde el que Mara lo llam

3 Mara sube al ascensor y a travs de un nuevo


mensaje le dice que la lleve a un determinado piso

4 El ascensor tiene la responsabilidad de llevar a Mara


al piso indicado

Taller de Lenguajes II Ingeniera en Computacin 2013

Prof. Claudia Queiruga - Prof. Laura Fava

INTERACCIN ENTRE OBJETOS


Qu hace Mara para llegar hasta su departamento? 1 Se para frente a la puerta del ascensor y lo llama.

Mensaje

Emisor

Receptor

Taller de Lenguajes II Ingeniera en Computacin 2013

Prof. Claudia Queiruga - Prof. Laura Fava

INTERACCIN ENTRE OBJETOS


2 El ascensor llega al piso, abre la puerta, entra Mara. El ascensor espera que Mara le indique a qu piso quiere ir.

3 Mara le indica a qu piso quiere ir, entonces el ascensor cierra la puerta y sube hasta el piso seleccionado.
Taller de Lenguajes II Ingeniera en Computacin 2013 Prof. Claudia Queiruga - Prof. Laura Fava

MENSAJES
Mtodos vs. procedimientos
Existen 2 distinciones importantes: 1 En un mensaje, siempre hay designado un receptor del mensaje; el objeto receptor es aquel al que se le enva el mensaje. Cuando se invoca a un procedimiento, NO hay un objeto receptor. 2 La interpretacin del mensaje es llevada a cabo por un mtodo quien responde el mensaje. El objeto receptor determina qu mtodo ser el encargado de responder el mensaje y podra variar para diferentes receptores. ?

Receptor Receptor
Taller de Lenguajes II Ingeniera en Computacin 2013

Emisor
Prof. Claudia Queiruga - Prof. Laura Fava

CLASES E INSTANCIAS
Mara al igual que otras personas que toman ascensores, tienen caractersticas comunes: saben pedir un ascensor, indicar a qu piso desean ir, descender del ascensor, etc. esto es porque pertenecen a una Categora o Clase que podramos llamar usuario.

Una clase es un molde a partir de la cual se crean instancias con las mismas caractersticas y comportamiento.

Mara, Juan, Pedro, Catalina y otras personas que hacen uso del ascensor son instancias de la clase Usuario.

Aqu tenemos una categora general, Personas y otra especfica Usuario


Taller de Lenguajes II Ingeniera en Computacin 2013 Prof. Claudia Queiruga - Prof. Laura Fava

PRINCIPIOS DE LA PROGRAMACIN ORIENTADA A OBJETOS


Encapsulamiento
Es un mecanismo que consiste en construir una cpsula que funciona como una barrera alrededor de la informacin y de las operaciones de los objetos. Establece la siguiente regla: todas estas cosas deben permanecer juntas. Los lenguajes de programacin orientada a objetos proveen construcciones llamadas clases que permiten agrupar objetos con las mismas caractersticas. Una clase JAVA permite agrupar los atributos (variables de instancia) y el comportamiento (mtodos) de los objeto en clases. Las clases JAVA proveen encapsulamiento.

Consideremos la clase Sueldo ENCAPSULAMIENTO: VARIABLES DE INSTANCIA+ MTODOS


Si Cambia la forma de liquidar sueldos, se debera modificar el mtodo getSueldo(), pero los programadores que lo usan no se vern afectados por el cambio. getSueldo()) comportamiento setSueldo(double s)

estado

monto

El encapsulamiento provisto por las clases NO determina la visibilidad del interior de los objetos.
Prof. Claudia Queiruga - Prof. Laura Fava

Taller de Lenguajes II Ingeniera en Computacin 2013

PRINCIPIOS DE LA PROGRAMACIN ORIENTADA A OBJETOS


Ocultamiento de informacin
Es la capacidad de ocultar los detalles internos de un objeto y exponer slo los que son necesarios para el resto del sistema. De esta manera las modificaciones que realicemos, no afectarn a quienes usan nuestras clases. Se denomina interface pblica, a las partes de los objetos que conoce el mundo exterior; est compuesta por los mtodos y los datos que podrn ser requeridos por otros objetos del sistema. Los restantes datos y mtodos forman parte de la representacin privada de los objetos o implementacin. En Java, el ocultamiento se logra usando los modificadores de acceso en las declaraciones de las variables y mtodos definidos en las clases. En el ejemplo de la clase Sueldo los mtodos getSueldo() y setSueldo() pertenecen a la interface pblica de los objetos Sueldo y el monto es parte de la implementacin. La palabra clave private, que se utiliza en la declaracin de las variable de instancia y de los mtodos permite implementar ocultamiento.
Taller de Lenguajes II Ingeniera en Computacin 2013 Prof. Claudia Queiruga - Prof. Laura Fava

PRINCIPIOS DE LA PROGRAMACIN ORIENTADA A OBJETOS


Herencia
Adems de contar con cierta informacin sobre Mara por ser un Usuario, sabemos que Mara tambin es una Persona, que es un Mamfero y tambin, es un Animal. Organizamos el conocimiento como una jerarqua de clases que puede continuar y organizarse de diferentes maneras. Todo este conocimiento que tenemos sobre Mara, tambin puede aplicarse a otros usuarios. En POO, al principio que permite aplicar el conocimiento de una categora ms general a una ms especfica se denomina herencia. La herencia es el mecanismo de los lenguajes OO que implementa la relacin es un entre clases. Las clases pueden ser organizadas en jerarquas de herencia donde, las clases hijas o subclases, heredarn estado y comportamiento de las clases que se encuentran ms arriba en la jerarqua, llamadas superclases. Esto provee reusabilidad de cdigo. Las subclases pueden agregar nuevas variables de instancia y mtodos y pueden cambiar el comportamiento de los mtodos heredados a travs del mecanismo conocido como rescritura.
Taller de Lenguajes II Ingeniera en Computacin 2013 Prof. Claudia Queiruga - Prof. Laura Fava

PRINCIPIOS DE LA PROGRAMACIN ORIENTADA A OBJETOS


Sntesis
1. Todo es un objeto. Un programa orientado a objetos est organizado como una comunidad de objetos que interactan. 2. La computacin se lleva a cabo por objetos que interactan entre si envindose mensajes. 3. Todos los objetos son instancias de una clase. El mtodo invocado por un objeto en respuesta a un mensaje, es determinado por el objeto receptor del mensaje.

4. Una clase es un molde con una estructura y comportamiento asociado, que tendrn todos
los objetos que con ella se creen. Todos los objetos que se crean con una clase tendrn los mismos atributos con diferentes valores (estado) (comportamiento). 5. El encapsulamiento y el ocultamiento de informacin se complementan para aislar las y podrn ejecutar los mismos mtodos

diferentes partes de un sistema, permitiendo que el cdigo sea modificado y extendido sin
producir efectos colaterales. En Java est implementada a travs de clases y modificadores de acceso. 6. Las clases son organizadas en taxonomas que permiten relacionar clases y proveen herencia de atributos y comportamiento. En el caso de JAVA la herencia es simple, es una estructura

jerrquica llamada jerarqua de herencia. Los atributos y el comportamiento asociados con una
Taller de Lenguajes II Ingeniera en Computacin 2013

clase estn automticamente disponibles para las subclases.


Prof. Claudia Queiruga - Prof. Laura Fava

MODELAMOS CLASES
Persona nombre apellido edad domicilio documento Ascensor piso actual estado puerta capacidad piso Mximo piso Mnimo subir() bajar() abrirPuerta() getPisoActual() setPisoActual() getCapacidad() miAscensor.subir(2)

setEdad() getEdad() getNombre() getApellido()


Usuario

Detalles privados de Implementacin

Interface pblica

piso
setPiso() getPiso() irAPiso(x)

maria.irAPiso(2)

Taller de Lenguajes II Ingeniera en Computacin 2013

Prof. Claudia Queiruga - Prof. Laura Fava

Você também pode gostar