220 likes | 364 Views
Nivel 2. Definición de situaciones y manejo de casos. Presentación creada por M.J. Gaitán. Fundamentos de programaci ón Villalobos JA, Casallas R. Prentice Hall, 2006. Tipos simples de datos. Literal: valor constante de un tipo de datos variable = literal; private double costo = 52.50;
E N D
Nivel 2. Definición de situaciones y manejo de casos Presentación creada por M.J. Gaitán Fundamentos de programación Villalobos JA, Casallas R. Prentice Hall, 2006.
Tipos simples de datos • Literal: valor constante de un tipo de datos • variable = literal; • private doublecosto = 52.50; • Cambio de tipo de datos • variableTipo1 = (tipo1)variableTipo2; • private int pesos = (int)costo; pesos ← 52
Tipos simples de datos • División entera • pesos = 17/3; pesos ← 5 • Residuo de valores reales • 7.3 % 3.2 = 0.9 7.3 entre 3.2 toca a 2 y sobran 0.9
Tipos simples de datos • Tipo booleano • Sólo dos posibles valores: • true • false boolean nombreDeVariable; boolean casado; casado = true; casado = false;
Tipos simples de datos • Tipo char • char nombreDeVariable; • char opcion; • opcion = ‘A’; • opcion = 65; // código Unicode
Constantes • // Constantes • public final static tipo CONSTANTE1 = valor; • public final static int OPCION1 = 1; • public final static double PESO_TAREAS = 0.6; • final: ya no va a cambiar • static: propiedad de la clase, no del objeto • Asignación • Dentro de la clase: variableMismoTipo = CONSTANTE; • Fuera de la clase: variableMismoTipo = ClaseDeConstante.CONSTANTE;
Cuando la asociación entre clases pude o no existir Define el número de instancias de una clase que pueden manejarse a través de una asociación 0..1 Si el objeto correspondiente a una asociación no está presente se utiliza el valor null Clase1 Clase2 p1 0..1 p2 0..1 Cardinalidad de la asociación
Operadores sobre cadenas de caracteres • + • Cadenas y tipos simples • clase String • equals(String cadenaXComparar) • equalsIgnoreCase(String cadenaXComparar) • charAt(int indice)
Variables • Declaradas dentro de un método: tipo nombreVariable; int estaturaPulgadas; int estaturaPulgadas = 64; • Al comienzo del método • Son locales del método • no se pueden usar fuera de él.
Otros operadores de asignación • var++; • var es un atributo o variable entera • Equivalente a var = var + 1; • var--; • Equivalente a var = var - 1; • var+=num; • Equivalente a var = var + num; • var-=num; • Equivalente a var = var - num;
Clases y objetos • Diferencia • Clase: • Define al común de las entidades descritas por ella • Caso general • Los métodos le pertenecen, son lo que se puede hacer • Objeto: • Entidad específica que pertenece a una clase. • Cumple con la estructura de atributos de la clase • Puede usar sus métodos
Bioterio Especie int totalAnimales String nombreEspecie String cepa int tipo int cantidad Clases y objetos e1 e2 e3 :Especie nombreEspecie = Ratones cepa = Jimpy tipo = MUTANTES cantidad = 42 :Especie nombreEspecie = Ratones cepa = C57BL/6 tipo = CONSANGUINEOS cantidad = 32 e2 e1 :Bioterio totalAnimales =148 :Especie nombreEspecie = Ratas cepa = SHR tipo = COSANGUINEOS cantidad = 72 e3
Clases y objetos • Creación de objetos de una clase Especie e = new Especie(); e :Especie nombreEspecie = cepa = tipo = cantidad =
e :Especie nombreEspecie = “” cepa = “” tipo = 0 cantidad = 0 Clases y objetos • Métodos constructores • Invocado en la creación del objeto • Para asignar valor a cada atributo • Se llama igual que la clase y no tiene retorno public Especie(){ nombreEspecie = “”; cepa = “”; tipo = 0; cantidad = 0; } Especie e = new Especie();
e :Especie nombreEspecie = “Ratones” cepa = “C3H/He” tipo = COSANGUINEOS cantidad = 0 Clases y objetos • Métodos constructores public Especie(String nom, String cep, int tip, int cant) { nombreEspecie = nom; cepa = cep; tipo = tip; cantidad = cant; } Especie e = new Especie(“Ratones”,“C3H/He”,Especie.COSANGUINEOS,0);
Clases y objetos • Métodos constructores public Bioterio(Especie e1,Especie e2,Especie e3) { especie1 = e1; especie2 = e2; especie3 = e3; totalAnimales = 0; } Especie e1 = new Especie(“Ratones”,“C57BL/6”,Especie.COSANGUINEOS,32); Especie e2 = new Especie(“Ratones”,“Jimpy”,Especie.MUTANTES,42); Especie e3 = new Especie(“Ratas”,“SHR”,Especie.COSANGUINEOS,72); Bioterio bioterio = new Bioterio(e1,e2,e3,e4);
Instrucciones condicionales • Simples publicboolean hayAnimales(int cantidad){ boolean siHay; if (cantidad == 0) siHay = false; else siHay = true; return siHay; } publicboolean hayAnimales(int cantidad){ return cantidad != 0; }
Instrucciones condicionales constantes en clase Especie: COSANGUINEOS, NO_COSANGUINEOS y MUTANTES • En cascada • Ej. Dar el nombre del tipo. Si es tipo COSANGUINEOS, debe regresar la cadena “Tipo cosanguineo”
Instrucciones condicionales • Compuestas
Responsabilidades de una clase • Tipos de método • Métodos constructores • Inicializar los valores de los atributos de un objeto durante su creación • Métodos modificadores • Cambiar el estado de los objetos de la clase. Hacen • Métodos analizadores • Calcular información a partir del estado de los objetos de la clase. Saben
Responsabilidades de una clase • Identificación de responsabilidades de la clase • Administradora de la información en atributos • ¿Qué servicios reflejan las operaciones típicas del elemento en el mundo de su clase? • Ayudante de los vecinos en el modelo del mundo • ¿Qué servicios necesitan las demás clases de esta? • Para cada método hay que definir • el tipo de retorno • ¿qué espera el que solicitó el servicio? • los parámetros • ¿qué información externa necesito para prestar el servicio?