17
INTERACCIÓN DE OBJETOS 1

INTERACCIÓN DE OBJETOS - UNEDhorarioscentros.uned.es/archivos_publicos/qdocente_planes/381325/… · relaciones en un momento dado de la ejecución de la aplicación. Vista dinámica

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: INTERACCIÓN DE OBJETOS - UNEDhorarioscentros.uned.es/archivos_publicos/qdocente_planes/381325/… · relaciones en un momento dado de la ejecución de la aplicación. Vista dinámica

INTERACCIÓN DE

INTERACCIÓN DE

OBJETOS

1

Page 2: INTERACCIÓN DE OBJETOS - UNEDhorarioscentros.uned.es/archivos_publicos/qdocente_planes/381325/… · relaciones en un momento dado de la ejecución de la aplicación. Vista dinámica

� La abstracciónabstracciónabstracciónabstracción es la habilidad de ignorar los detalles de las partes para centrar la atención en un nivel más alto de un problema.

� Cuando intentamos abordar un problema usaremos la abstracción y descompondremos el mismo en problemas cada vez más y más usaremos la abstracción y descompondremos el mismo en problemas cada vez más y más pequeños.

� La modularizaciónmodularizaciónmodularizaciónmodularización es el proceso de dividir un todo en partes bien definidas que pueden ser construidas y examinadas separadamente, las que interactúan de manera bien definida.

2

Page 3: INTERACCIÓN DE OBJETOS - UNEDhorarioscentros.uned.es/archivos_publicos/qdocente_planes/381325/… · relaciones en un momento dado de la ejecución de la aplicación. Vista dinámica

� Vamos a ver el proyecto clock-display.

� Usamos la abstracción para dividir el problema en subproblemas mas pequeños. En este caso dividimos la representación del reloj en la representación de displays de 2 digitos.representación de displays de 2 digitos.

3

Page 4: INTERACCIÓN DE OBJETOS - UNEDhorarioscentros.uned.es/archivos_publicos/qdocente_planes/381325/… · relaciones en un momento dado de la ejecución de la aplicación. Vista dinámica

� Podemos usar nuestras clases como tipos para las variables de otras clases.

� Las variables cuyo tipo es una clase pueden almacenar objetos de dicha clase.almacenar objetos de dicha clase.

public class CPeriodo{

private CFecha fechaInicio;

private CFecha fechaFin;

}

4

Page 5: INTERACCIÓN DE OBJETOS - UNEDhorarioscentros.uned.es/archivos_publicos/qdocente_planes/381325/… · relaciones en un momento dado de la ejecución de la aplicación. Vista dinámica

� El diagrama de clases diagrama de clases diagrama de clases diagrama de clases muestra las clases de una aplicación y las relaciones entre ellas. Da información sobre el código. � Vista estática de un programa.

� El diagrama de objetos diagrama de objetos diagrama de objetos diagrama de objetos muestras los objetos y sus relaciones en un momento dado de la ejecución de la relaciones en un momento dado de la ejecución de la aplicación. � Vista dinámica de un programa.

5

Page 6: INTERACCIÓN DE OBJETOS - UNEDhorarioscentros.uned.es/archivos_publicos/qdocente_planes/381325/… · relaciones en un momento dado de la ejecución de la aplicación. Vista dinámica

� Las variables de tipo primitivo almacenan los datos en la variable.

� En cambio las variables de tipo objeto lo que almacenan es una referencia al objeto.

6

Fecha1 Dia = 1Mes = 1

Año = 2012

Page 7: INTERACCIÓN DE OBJETOS - UNEDhorarioscentros.uned.es/archivos_publicos/qdocente_planes/381325/… · relaciones en un momento dado de la ejecución de la aplicación. Vista dinámica

� En Java son tipos primitivos todos aquellos que no son objetos.

� Tipos primitivos:� bytebytebytebyte (8 bits): Enteros de -128 a 127 � shortshortshortshort (16 bits): Enteros de -32768 a 32767 � intintintint (32 bits): Enteros de -2147483648 a +2147483647 � longlonglonglong (64 bits): Enteros de -9223372036854775808 a

+9223372036854775807 � CharCharCharChar(16 bits): caracteres Unicode.� floatfloatfloatfloat (32 bits): 1 bit de signo, 8 de exponente y 24 de mantisa.� doubledoubledoubledouble (64 bits): 1 bit de signo, 11 de exponente y 52 de mantisa.� booleanbooleanbooleanboolean: dos valores posibles true y false.

� Tipos referenciados:� Clases� Interfaces� Arrays

� Los tipos primitivos no poseen métodos.

7

Page 8: INTERACCIÓN DE OBJETOS - UNEDhorarioscentros.uned.es/archivos_publicos/qdocente_planes/381325/… · relaciones en un momento dado de la ejecución de la aplicación. Vista dinámica

� Vamos a analizar el código del proyecto clock-display.

� Dentro del mismo veremos:� Operadores lógicos. Los podremos usar dentro de las � Operadores lógicos. Los podremos usar dentro de las

expresiones de condición de las sentencias if.� a && b � “y”� a || b � “o”� !a � negación

� Concatenación de cadenas de caracteres� Operador módulo (%)

8

Page 9: INTERACCIÓN DE OBJETOS - UNEDhorarioscentros.uned.es/archivos_publicos/qdocente_planes/381325/… · relaciones en un momento dado de la ejecución de la aplicación. Vista dinámica

� Los objetos pueden crear otros objetos usando el operador new.

public class CPeriodo{

private CFecha fechaInicio ;private CFecha fechaInicio ;

private CFecha fechaFin;

public CPeriodo (){

fechaInicio = new fechaInicio(1,1,2012);

fechaFin = new fechaFin(1,1,2012);

}

}

9

Page 10: INTERACCIÓN DE OBJETOS - UNEDhorarioscentros.uned.es/archivos_publicos/qdocente_planes/381325/… · relaciones en un momento dado de la ejecución de la aplicación. Vista dinámica

� Al crear un nuevo objeto con new lo que realmente tenemos es una referencia a la posición que ocupa en memoria el objeto.

CGrados grados1 = new CGrados ( );

Grados 1

gradosC = 30

Page 11: INTERACCIÓN DE OBJETOS - UNEDhorarioscentros.uned.es/archivos_publicos/qdocente_planes/381325/… · relaciones en un momento dado de la ejecución de la aplicación. Vista dinámica

CGrados grados1 = new CGrados ( );CGrados gados2 = new CGrados ( );

grados1

gradosC = 30

grados2

gradosC = 20

Page 12: INTERACCIÓN DE OBJETOS - UNEDhorarioscentros.uned.es/archivos_publicos/qdocente_planes/381325/… · relaciones en un momento dado de la ejecución de la aplicación. Vista dinámica

grados2 = grados1;

grados2

gradosC = 30

grados2

gradosC = 20

Page 13: INTERACCIÓN DE OBJETOS - UNEDhorarioscentros.uned.es/archivos_publicos/qdocente_planes/381325/… · relaciones en un momento dado de la ejecución de la aplicación. Vista dinámica

� Para una misma clase podemos definir múltiples constructores.

� El método se llamará igual y se distinguirá por el número y/o tipo de los parámetros.por el número y/o tipo de los parámetros.

new CFecha();

new CFecha(1,1,2011);

13

Page 14: INTERACCIÓN DE OBJETOS - UNEDhorarioscentros.uned.es/archivos_publicos/qdocente_planes/381325/… · relaciones en un momento dado de la ejecución de la aplicación. Vista dinámica

� Dentro de un método de una clase podemos llamar a otros métodos de la misma directamente.

� Para ello incluiremos la sentencia de llamada � Para ello incluiremos la sentencia de llamada a dicho método pasándole en caso necesario los parámetros que requiera el método.

saldo = saldo + calcularInteres(10);

14

Page 15: INTERACCIÓN DE OBJETOS - UNEDhorarioscentros.uned.es/archivos_publicos/qdocente_planes/381325/… · relaciones en un momento dado de la ejecución de la aplicación. Vista dinámica

� Los métodos pueden llamar a métodos de otros objetos.

double importeInteres = miCuenta.calcularInteres(10);

15

Page 16: INTERACCIÓN DE OBJETOS - UNEDhorarioscentros.uned.es/archivos_publicos/qdocente_planes/381325/… · relaciones en un momento dado de la ejecución de la aplicación. Vista dinámica

� La referencia this nos permite referencia al mismo objeto.

� De uso entre otras cosas cuando se produce sobrecarga de nombres.sobrecarga de nombres.

public CFecha(int dia, int mes, int año){

this.dia=dia;

this.mes=mes;

this.año=año;

}

16

Page 17: INTERACCIÓN DE OBJETOS - UNEDhorarioscentros.uned.es/archivos_publicos/qdocente_planes/381325/… · relaciones en un momento dado de la ejecución de la aplicación. Vista dinámica

� Vamos a revisar el código de los dos proyectos de este capítulo.

� Aprovecharemos para ver como funciona el depurador de código. Una útil herramienta depurador de código. Una útil herramienta que nos ayudará durante el proceso de desarrollo.

17