Nivel 2. Definición de situaciones y manejo de casos Fundamentos de programación Villalobos JA, Casallas R. Prentice Hall, Presentación creada por M.J. Gaitán
Tipos simples de datos Literal: valor constante de un tipo de datos variable = literal; private double costo = 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 = 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
Código Unicode 33!51369E87W105I123{175¯193Á211Ó “52470F88X106j124|176°194Â212Ô #53571G89Y107k125}177±195Ã213Õ $54672H90Z108l126~178²196Ä214Ö %55773I91[109m161¡179³197Å215× &56874J92\110n162¢180´198Æ216Ø ‘57975K93]111o163£181µ199Ç217Ù (58:76L94^112p164¤182¶200È218Ú )59;77M95_113q165¥183·201É219Û *60<78N96`114r166¦184¸202Ê220Ü =79O97a115s167§185¹203Ë221Ý ,62>80P98b116t168¨186º204Ì222Þ ?81Q99c117u169©187»205Í223ß /65A83S101e119w171«189½207Ï225á B84T102f120x172¬190¾208Ð226â C85U103g121y173191¿209Ñ227ã D86V104h122z174®192À210Ò228ä246
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;
Cardinalidad de la asociación 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 p p2 0..1
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
Clases y objetos Bioterio int totalAnimales Especie String nombreEspecie String cepa int tipo int cantidad e1 e2 e3 :Bioterio totalAnimales =148 :Especie nombreEspecie = Ratones cepa = C57BL/6 tipo = CONSANGUINEOS cantidad = 32 :Especie nombreEspecie = Ratones cepa = Jimpy tipo = MUTANTES cantidad = 42 :Especie nombreEspecie = Ratas cepa = SHR tipo = COSANGUINEOS cantidad = 72 e1 e2 e3
Clases y objetos Creación de objetos de una clase Especie e = new Especie(); :Especie nombreEspecie = cepa = tipo = cantidad = e
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(); :Especie nombreEspecie = “” cepa = “” tipo = 0 cantidad = 0 e
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); :Especie nombreEspecie = “Ratones” cepa = “C3H/He” tipo = COSANGUINEOS cantidad = 0 e
Clases y objetos Métodos constructores public Bioterio(Especie e1,Especie e2,Especie e3) { especie1 = e1; especie2 = e2; especie3 = e3; totalAnimales = 0; } E specie e1 = new Especie(“Ratones”,“C57BL/6”,Especie.COSANGUINEOS,32); E specie e2 = new Especie(“Ratones”,“Jimpy”,Especie.MUTANTES,42); E specie e3 = new Especie(“Ratas”,“SHR”,Especie.COSANGUINEOS,72); Bioterio bioterio = new Bioterio(e1,e2,e3,e4);
Instrucciones condicionales Simples public boolean hayAnimales(int cantidad){ boolean siHay; if (cantidad == 0) siHay = false; else siHay = true; return siHay; } public boolean hayAnimales(int cantidad){ return cantidad != 0; }
Instrucciones condicionales En cascada Ej. Dar el nombre del tipo. Si es tipo COSANGUINEOS, debe regresar la cadena “Tipo cosanguineo” constantes en clase Especie: COSANGUINEOS, NO_COSANGUINEOS y MUTANTES
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?