Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente...

36
Definiciones Ejemplo Cuestiones Tareas Sesi´ on 4. TEMA 6 INTERACCI ´ ON DE OBJETOS Fundamentos de Inform´ atica Jos´ e Jaime Noguera Noguera 8 de marzo de 2018

Transcript of Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente...

Page 1: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Sesion 4. TEMA 6 INTERACCION DEOBJETOS

Fundamentos de Informatica

Jose Jaime Noguera Noguera

8 de marzo de 2018

Page 2: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Contenidos

1 Definiciones

2 Ejemplo

3 Cuestiones

4 Tareas

Page 3: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

ABSTRACCION Y MODULARIZACION

Para tratar el problema de la complejidad creciente que aparece almodelizar ciertos problemas podemos hacer uso de los conceptos de:

Modularizacion: proceso de dividir un todo en partes bien definidasque puedan construirse y examinarse por separado yque interaccionen entre sı de formas bien definidas.

Abstraccion: capacidad de ignorar los detalles de las distintas par-tes para centrar la atenion en un nivel superior de unproblema.

Page 4: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

ABSTRACCION Y MODULARIZACION EN ELSOFTWARE

En el ejemplo concreto de desarrollo de software utilizando el para-digma de la orientacion a objetos:Modularizacion: las clases representan estas partes o componentes

bien definidos, cuya complejidad individual no es ele-vada. Esta tecnica tambien se conoce como divide yvenceras. Al dividir el problema en subproblemas, lacomplejidad disminuye. Ademas las clases interaccio-nan entre ellas de formas bien definidas.

Abstraccion: capacidad para ignorar los detalles de implementacionde cada clase, para ası abordar cuestiones mas gene-rales.

Page 5: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

DIAGRAMA DE CLASES

Un diagrama de clases muestra las clases de una aplicacion y las rela-ciones entre ellas. Proporciona informacion acerca del codigo fuentey presenta una vista estatica del problema (no necesita estar enejecucion). La Figura 1 representa el diagrama de clases del pro-yecto del reloj del libro. La flecha que aparece significa que la claseClockDisplay hace uso de (depende de) la clase NumberDisplay ylo que realmente significa es que en el codigo fuente de ClockDsplayaparece mencionada la clase NumberDisplay.

Figura 1: Diagrama de Clases.

Page 6: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

DIAGRAMA DE OBJETOSUn diagrama de objetos muestra los objetos y sus relaciones enun instante determindo durante la ejecucion de un programa,presentando una vista dinamica de un programa. En la Figura 2 semuestra un diagrama de objetos en un momento determinado de laejecucion. Observar la representacion de las variables que contienenreferencias a objetos.

Figura 2: Diagrama de objetos.

Page 7: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Ejemplo: clase PersonaT3

Figura 3: Clase PersonaT3 a.

Page 8: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Ejemplo: clase PersonaT3

Figura 4: Clase PersonaT3 b.

Page 9: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Ejemplo: clase Coche

Figura 5: Clase Coche.

Page 10: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Ejemplo: diagrama de clases

La clase PersonaT3 hace uso de la clase Coche. Por tanto en sudiagrama de clases aparece una flecha desde PersonaT3 a Coche.En BlueJ es una lınea discontinua, pero tambien se representa conlıneas continuas.

Figura 6: Diagrama de clases.

Page 11: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Ejemplo: creando objetosDe manera grafica creamos una objeto PersonaT3 (personaT1)con el constructor del DNI, y un objeto Coche (coche1). Despuesinvocamos el metodo imprimeDatos() del objeto personaT1. Ob-serva los valores por defecto que aparecen en las variables. A conti-nuacion introducimos un nombre, un apellido e invocamos de nuevoimprimeDatos(). Todo esto puede verse en forma de lineas de tex-to en la ventana de terminal (desmarcando la opcion Limpiar alpantalla en llamada a metodo):

Page 12: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Ejemplo: creando objetos

La ventana de terminal ofrece una idea de lo que habrıa que in-cluir en la funcion main si no estuviesemos utilizando BlueJ. Ahoraqueremos introducir el objeto coche1 en el campo coche del ob-jeto personaT1. Para ello invocamos el metodo setCoche(Cochecoche) y BlueJ nos muestra la ventana:

Para introducir el coche, simplemente clicamos sobre el objeto co-che1 (o bien introducimos manualmente el nombre).

Page 13: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Ejemplo: creando objetos

Si imprimimos los datos observamos que ahora la linea de impresiones mas larga y hay datos que no aparecen. Observando el codigo seevidencia el porque.

Page 14: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Ejemplo: creando objetos

Si en el Code Pad intoducimos la linea:

coche1.setMarca(”Audi”);

e imprimimos los datos, se observa que este cambio sı ha afectado alos objetos. Esta es otra manera de interactuar con nuestros objetos.Finalmente, desde el objeto personaT3 podemos cambiar el estadodel objeto coche1, mediante el metodo cambiaItvCoche(StringsiOno). Observar el codigo correspondiente.

Page 15: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Ejemplo

Puedes descargar el codigo desde y seguir realizando pruebas como:

Crear mas objetos PersonaT3. Asignar el mismo coche a dospersonas y realizar cambios en el campo de la ITV desde unapersona. ¿Afecta al coche de la otra? (tıpica pregunta detests).Utiliza elCode Pad para interactuar con tus objetos.Utiliza el debugger, observando las variables que aparecen.Observa como se introducen varias variantes de Si, para quese reconozcan como entrada del metodocambiaItvCoche(String siOno). En los proximos temas severa una mejor manera de hacer esto.

Page 16: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Pregunta

Si utilizo el nombre de una clase para definir el tipo de una variablepodre almacenar objetos de dicha clase en esa variable.

Page 17: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Respuesta

Si utilizo el nombre de una clase para definir el tipo de una variablepodre almacenar objetos de dicha clase en esa variable.

Verdadero, las clases definen tipos.

Page 18: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Pregunta

Al compilar una clase, los diagramas de objetos pueden no cambiar,mientras que los diagramas de clases siempre se modifican.

Page 19: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Respuesta

Al compilar una clase, los diagramas de objetos pueden no cambiar,mientras que los diagramas de clases siempre se modifican.

Falso. Al compilar desaparece la informacion asociada a los estadosde los objetos ya que la ejecucion finaliza y por tanto los diagra-mas de objetos ya no son validos (vista dinamica). Sin embargo, eldiagrama de clases es el mismo (vista estatica), siempre que en elcodigo no se hayan modificado las lineas que mencionan otras clasesy no se hayan anadido mas lineas de este tipo.

Page 20: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Pregunta

¿Que devuelve la siguiente expresion?

(3 < 2) && (4 == 5) || (3 > 2)

Page 21: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Respuesta

¿Que devuelve la siguiente expresion?

(3 < 2) && (4 == 5) || (3 > 2)

Devuelve TRUE. IMPORTANTE: orden de precedencia. En el apendi-ce C sel libro aparece una tabla con el orden de precedencia de losoperadores Java. No es necesaria saberla toda pero sı los mas im-portantes. && tiene una mayor precedencia que || y, por tanto es laque se ejecuta antes. La expresion es pues equivalente a:

((3 < 2)&&(4 == 5)) ||(3 > 2),

es decir (False && False) || True, resultado True.

Page 22: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Pregunta

¿Cual es el resultado de la siguiente expresion?

3− 4 ∗ 2− 10 : 2 ∗ 3 + 2

Page 23: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Respuesta

¿Cual es el resultado de la siguiente expresion?

3− 4 ∗ 2− 10 : 2 ∗ 3 + 2

-18. El orden de las operaciones es el mismo que el orden habitualen expresiones matematicas. Recordar que si hay varias * y / juntasse empieza a resolver de izquierda a derecha.

Potencias2ˆ3 no significa 23. Para expresar una potencia necesitamos ponerMath.pow(2, 3)

Page 24: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Pregunta

¿Cual es el resultado de 28 + 10 %7 ∗ 2?

Page 25: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Respuesta

¿Cual es el resultado de 28 + 10 %7 + 1?

Da 32. El % tiene un orden de precedencia mayor que la suma.Observar que en la tabla C.1, pag. 606 del libro, esto parece confuso.La suma corresponde a la linea 5 y no a la 2.

RecomendacionSiempre anadir parentesis para asegurar el orden en que deseamosque se apliquen los operadores.

Page 26: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Pregunta

¿Cual es el resultado de 3/2?

Page 27: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Respuesta

¿Cual es el resultado de 3/2?

El resultado es 1 ya que el resultado de una division entre enteroses un entero. Si queremos que de 1.5 debemos poner 3.0/2 .

Page 28: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Pregunta

¿Cual es la diferencia entre Step y Step Into del debugger?

Page 29: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Respuesta

¿Cual es la diferencia entre Step y Step Into del debugger?

Si aplicamos Step, se ejecuta una linea del codigo actual y se detieneen la siguiente. Sin embargo, si por ejemplo esta linea es un metodo yutilizamos Step Into, ”entrara en el metodo”, se ejecutara la primeralinea de ese metodo y se detendra en la segunda.

Page 30: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Pregunta

¿Que corresponde a objetos a metodos y parametros en la siguienteexpresion?

casa.propietario(arrendatario.devuelvePiso(”123”))

Page 31: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Respuesta

¿Que corresponde a objetos a metodos y parametros en la siguienteexpresion?

casa.propietario(arrendatario.devuelvePiso(”123”))

En primer lugar, los nombres de los metodos y objetos no tienenporque tener un sentido real:

Objetos: casa y arrendatarioMetodos: propietario (de casa) y devuelvePiso (dearrendatario)Parametros reales: ”123”del metodo devuelvePiso yarrendatario.devuelvePiso(”123”) del metodo propietario.

Page 32: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Pregunta

¿Que tipo de variables nos muestra el depurador?

Page 33: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Respuesta

¿Que tipo de variables nos muestra el depurador?

Estaticas (static) (que aun no se han explicado), campos o varia-bles de Instancia (instance variables), y variables locales (localvariables).

Page 34: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Pregunta

¿Que tipo de estructuras pueden estar sobrecargadas?

Page 35: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Respuesta

¿Que tipo de estructuras pueden estar sobrecargadas?

Un metodo (metodo sobrecargado), un constructor (sobrecarga deconstructores), y los nombres de las variables (sobrecarga de nom-bres).

Page 36: Sesi´on 4. TEMA 6 INTERACCI ON DE´ OBJETOS · ¿Cu´al es el resultado de la siguiente expresi´on? 3 −4 ∗2 −10 : ... Da 32. El% tiene un orden ... Objetos: casa y arrendatario

Definiciones Ejemplo Cuestiones Tareas

Tareas

Realizar el test del Tema 6: Interaccion de objetos (Tema 3del libro) en jjnoguera.wordpress.con/uned-deniaLeer el Tema 4 del libro: Agrupacion de objetos, y el ApendiceD.Programar una clase Moto, con algunos campos e incluir uncampo moto en la clase PersonaT3. Modificar el metodo deimpresion para que incluya la moto en caso de tener una.Introducir un nuevo metodo que modifique algun campo de laclase Moto.Realizar pruebas con BlueJ para ver que todo funcionacorrectamente. Hacer algunas pruebas con el debugger.