INTERACCIÓN DE OBJETOS -...
Transcript of INTERACCIÓN DE OBJETOS -...
INTERACCIÓN DE
INTERACCIÓN DE
OBJETOS
1
� 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
� 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
� 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
� 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
� 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
� 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
� 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
� 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
� 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
CGrados grados1 = new CGrados ( );CGrados gados2 = new CGrados ( );
grados1
gradosC = 30
grados2
gradosC = 20
grados2 = grados1;
grados2
gradosC = 30
grados2
gradosC = 20
� 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
� 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
� Los métodos pueden llamar a métodos de otros objetos.
double importeInteres = miCuenta.calcularInteres(10);
15
� 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
� 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