1 / 71

Modulo 4 Variables, expresiones y estructuras de control

Modulo 4 Variables, expresiones y estructuras de control. Objetivos. Distinguir entre variables de instancias y variables locales. Describir como inicializar variables de instancia. Identificar y corregir el error de compilación: Possible reference before assignment.

Download Presentation

Modulo 4 Variables, expresiones y estructuras de control

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Modulo 4 Variables, expresiones y estructuras de control Java. Modulo 4

  2. Objetivos • Distinguir entre variables de instancias y variables locales. • Describir como inicializar variables de instancia. • Identificar y corregir el error de compilación: Possible reference before assignment. • Reconocer, describir y usar operadores de Java. • Distinguir entre asignaciones legales e ilegales de tipos primitivos. • Identificar expresiones booleanas y sus requerimientos en estructuras de control. • Reconocer la compatibilidad de asignación y los cast requeridos en tipos fundamentales. • Usar las construcciones if, switch, for, while y do . Así como las formas etiquetadas break y continue como estructuras de control en un programa. Java. Modulo 4

  3. Variables de instancia • Los atributos de un objeto son llamadas variables de instancia. • Se declaran dentro de una clase y fuera de los métodos. • Se crean y destruyen con el objeto. • Instancia es sinónimo de objeto, o también, de ejemplar de una clase. Java. Modulo 4

  4. Palabra reservada this • Palabra que hace referencia a los atributos, métodos y constructores de una clase, dentro de un método local o de un constructor de ella. • this permite distinguir una variable de instancia de una variable local de un método • this permite hacer referencia a un método o constructor dentro de otro método c constructor de la misma clase. • this permite pasar el objeto actual como un parámetro a otro método o constructor. Java. Módulo 3

  5. Ejemplo de usos de la referencia this 1 public class Fecha { 2 private int dia = 1; 3 private int mes = 1; 4 private int año = 2000; 5 6 public Fecha(int dia, int mes, int año) { 7 this.dia = dia; 8 this.mes = mes; 9 this.año = año; 10 } 11 public Fecha (Fecha fecha) { 12 this.dia = fecha.dia; 13 this.mes = fecha.mes; 14 this.año = fecha.año; 15 } Java. Módulo 3

  6. Ejemplo de usos de la referencia this 16 public Fecha agregaDias(int dias) { 17 Fecha nuevaFecha = new Fecha(this); 18 nuevaFecha.dia = nuevaFecha.dia + dias; 19 // Sin Implantar ... 20 return nuevaFecha; 21 } 22 public void print() { 23 System.out.println(“Fecha:"+dia+"-"+mes+"-"+año); 24 } 25 } 1 public class PruebaFecha { 2 public static void main(String[] args){ 3 Fecha fechaNacimiento = new Fecha(22, 7, 1980); 4 Fecha fechaSiguiente = fechaNacimiento.sumaDias(7); 5 fechaSiguiente.print(); 6 } 7 } Java. Módulo 3

  7. Inicialización de variables de instancia Java. Modulo 4

  8. Variables locales • Variables locales son la que se declaran dentro de un método. • Se crean cuando el método se ejecuta y se destruyen cuando el método termina • También son llamadas: automáticas (automatic), temporales (temporary) o de pila (stack) • Deben inicializarse antes de ser usadas o aparecen errores de compilación: Possiblereferencebeforeassignment. Java. Modulo 4

  9. Ejemplo del alcance de variables publicclass Prueba{ publicstaticvoid main(String[ ] args){ Alcance alcance= new Alcance(); alcance.metodoA(); } } publicclass Alcance{ privateint i=1; publicvoid metodoA(){ int i=4, j=5; this.i=i+j; metodoB(7); } publicvoid metodoB(int i){ int j=8; this.i=i+j; } } Pila Heap i 1 [ alcance main Java. Modulo 4

  10. Ejemplo de Alcance de Variables publicclass Prueba{ publicstaticvoid main(String[ ] args){ Alcance alcance= new Alcance(); alcance.metodoA(); } } publicclass Alcance{ privateint i=1; publicvoid metodoA(){ int i=4, j=5; this.i=i+j; metodoB(7); } publicvoid metodoB(int i){ int j=8; this.i=i+j; } } Pila Heap i 1 i 4 [ alcance main Java. Modulo 4

  11. Ejemplo de Alcance de Variables publicclass Prueba{ publicstaticvoid main(String[ ] args){ Alcance alcance= new Alcance(); alcance.metodoA(); } } publicclass Alcance{ privateint i=1; publicvoid metodoA(){ int i=4, j=5; this.i=i+j; metodoB(7); } publicvoid metodoB(int i){ int j=8; this.i=i+j; } } Pila Heap i 1 j 5 i 4 [ alcance main Java. Modulo 4

  12. Ejemplo de Alcance de Variables publicclass Prueba{ publicstaticvoid main(String[ ] args){ Alcance alcance= new Alcance(); alcance.metodoA(); } } publicclass Alcance{ privateint i=1; publicvoid metodoA(){ int i=4, j=5; this.i=i+j; metodoB(7); } publicvoid metodoB(int i){ int j=8; this.i=i+j; } } Pila Heap i this 1 metodoA j 5 i 4 [ alcance main Java. Modulo 4

  13. Ejemplo de Alcance de Variables publicclass Prueba{ publicstaticvoid main(String[ ] args){ Alcance alcance= new Alcance(); alcance.metodoA(); } } publicclass Alcance{ privateint i=1; publicvoid metodoA(){ int i=4, j=5; this.i=i+j; metodoB(7); } publicvoid metodoB(int i){ int j=8; this.i=i+j; } } Pila Heap i this 9 metodoA j 5 i 4 [ alcance main Java. Modulo 4

  14. Ejemplo de Alcance de Variables publicclass Prueba{ publicstaticvoid main(String[ ] args){ Alcance alcance= new Alcance(); alcance.metodoA(); } } publicclass Alcance{ privateint i=1; publicvoid metodoA(){ int i=4, j=5; this.i=i+j; metodoB(7); } publicvoid metodoB(int i){ int j=8; this.i=i+j; } } Pila Heap i i 7 this 9 metodoA j 5 i 4 [ alcance main Java. Modulo 4

  15. Ejemplo de Alcance de Variables publicclass Prueba{ publicstaticvoid main(String[ ] args){ Alcance alcance= new Alcance(); alcance.metodoA(); } } publicclass Alcance{ privateint i=1; publicvoid metodoA(){ int i=4, j=5; this.i=i+j; metodoB(7); } publicvoid metodoB(int i){ int j=8; this.i=i+j; } } Pila Heap j 8 i i 7 this 9 metodoA j 5 i 4 [ alcance main Java. Modulo 4

  16. Ejemplo de Alcance de Variables publicclass Prueba{ publicstaticvoid main(String[ ] args){ Alcance alcance= new Alcance(); alcance.metodoA(); } } publicclass Alcance{ privateint i=1; publicvoid metodoA(){ int i=4, j=5; this.i=i+j; metodoB(7); } publicvoid metodoB(int i){ int j=8; this.i=i+j; } } Pila Heap this metodoB j 8 i i 7 this 9 metodoA j 5 i 4 [ alcance main Java. Modulo 4

  17. Ejemplo de Alcance de Variables publicclass Prueba{ publicstaticvoid main(String[ ] args){ Alcance alcance= new Alcance(); alcance.metodoA(); } } publicclass Alcance{ privateint i=1; publicvoid metodoA(){ int i=4, j=5; this.i=i+j; metodoB(7); } publicvoid metodoB(int i){ int j=8; this.i=i+j; } } Pila Heap this metodoB j 8 i i 7 this 15 metodoA j 5 i 4 [ alcance main Java. Modulo 4

  18. Ejemplo de Alcance de Variables publicclass Prueba{ publicstaticvoid main(String[ ] args){ Alcance alcance= new Alcance(); alcance.metodoA(); } } publicclass Alcance{ privateint i=1; publicvoid metodoA(){ int i=4, j=5; this.i=i+j; metodoB(7); } publicvoid metodoB(int i){ int j=8; this.i=i+j; } } Pila Heap i this 15 metodoA j 5 i 4 [ alcance main Java. Modulo 4

  19. Ejemplo de Alcance de Variables publicclass Prueba{ publicstaticvoid main(String[ ] args){ Alcance alcance= new Alcance(); alcance.metodoA(); } } publicclass Alcance{ privateint i=1; publicvoid metodoA(){ int i=4, j=5; this.i=i+j; metodoB(7); } publicvoid metodoB(int i){ int j=8; this.i=i+j; } } Pila Heap i 15 [ alcance main Java. Modulo 4

  20. Ejemplo de Alcance de Variables publicclass Prueba{ publicstaticvoid main(String[ ] args){ Alcance alcance= new Alcance(); alcance.metodoA(); } } publicclass Alcance{ privateint i=1; publicvoid metodoA(){ int i=4, j=5; this.i=i+j; metodoB(7); } publicvoid metodoB(int i){ int j=8; this.i=i+j; } } Pila Heap Java. Modulo 4

  21. Ajustar (Casting) • Ajustar (casting) es la operación para que un expresión se almacene en un área menor. • La asignación de un long a un int requieren de un ajuste (cast) explícito • Ejemplos: longvalorGrande = 99L; intvalorRecortado = valorGrande; // Incorrecto intvalorRecortado = (int)valorGrande; intvalorRecortado = 99L; // Incorrecto intvalorRecortado = (int) 99L; intvalorRecortado = 99; Java. Modulo 4

  22. “Ampliación” (promotion) • Las variables o expresiones que se asignan, se amplían automáticamente al tamaño mayor que tenga la variable que recibe. • Una expresión es compatible con la asignación si el tipo de la variable que recibe es mayor o igual al tamaño (en bits) de su tipo de expresión. longvalorGrande = 6; // 6 es tipo int intvalorChico = 99L; // 99L es long double z = 12.414F; //12.414F es float, OK float z1 = 12.414; // 12.414 es double, ilegal Java. Modulo 4

  23. Una expresión es una combinación de operandos y/u operadores que al evaluarse da como resultado un valor único. Ejemplos 1 ‘A’ 2+3 contador + 1 indice < 100 Expresiones Java. Modulo 4

  24. Precedencia de operadores Java. Modulo 4

  25. Las condicional y la iteración, usan expresiones lógicas que pueden incluir: Operadores Relacionales < <= > >= == != Operadores lógicos ! && & || | ^ Expresiones en Estructuras de Control

  26. Se usan en expresiones de la forma: ExpresiónAoperadorExpresiónB temperatura> humedad B * B - 4.0 * A * C > 0.0 numero== 35 inicio!= ‘Q’ Operadoresrelacionales

  27. int x, y ; x = 4; y = 6; EXPRESION VALOR x < y verdadero x + 2 < y falso x != y verdadero x + 3 >= y verdadero y == x falso y == x+2 verdadero Expresiones relacionales

  28. Operadoreslógicos • Los operadoresboolean son • ! - NOT & - AND • | - OR ^ - XOR • Los operadores short-circuitsboolean son • && - AND || - OR • Ejemplo: • Fecha f; • if ((f != null) && (f.dia > 31)) { • // se hace algo con f • } Java. Modulo 4

  29. EXP SIGNIFICA DESCRIPCION ! p NO p ! p es F si p es V ! p es V si p es F p && q p Y q p && q es V si ambas p y q son V. En otro caso es F. p || q p O q p || q es V si o p o q o o ambas son V. En otro caso es F. Expresioneslógicas

  30. 100 -13 27 grado numero hora ( grado >= 60 ) ( numero > 0 ) ( hora >= 0 && hora < 24 ) ( hora == 12 || hora == 0 ) ¿Cuáles el valor de cadaexpresión?

  31. boolean joven, afiebrado ; double temperatura ; int edad edad = 20; temperatura = 40.0 ; joven = (edad < 18) ; // falso afiebrado = (temperatura > 36) ; // verdadero EXPRESIONVALOR joven && afiebrado falso joven || afiebrado verdadero ! joven verdadero ! afiebrado falso Expresioneslógicas

  32. Operaciones con cadenas • El operador +: • Ejecuta la concatenación String • Produce una nueva String String tratamiento = “Dr.”; String nombre =“Pedro” + “ ” + =“Montes” String titulo = tratamiento + nombre; • Uno de los argumentos debe ser un objeto String. • Los objetos que no son cadena se convierten a objetos String automáticamente. Java. Modulo 4

  33. Es el orden en el que la computadora ejecuta las instrucciones en un programa. ¿DE QUE MANERA SE REALIZA ? . . . Control de flujo Java. Modulo 4

  34. Las siguientes son las estructuras básicas decontrol de Java: Secuencia Selección Iteración Métodos Estructuras de control de flujo Java. Modulo 4

  35. Instrucción . . . Instrucción Instrucción La Secuencia es una serie de instrucciones que se ejecutan una después de otra. SECUENCIA Java. Modulo 4

  36. verdadero Instrucción Statement Condición . . . Instrucción falso Si una condición es verdadera ejecuta una secuencia de instrucciones, si es falsa, ejecuta otra secuencia e instrucciones. CONDICIONAL(Selección) Java. Modulo 4

  37. Condicional simple if if (expresión booleana){ instrucción o bloque; } verdadero falso expresión lógica instrucción A Java. Modulo 4

  38. verdadero falso expresión lógica instrucción B instrucción A Condicional doble if else if (expresión booleana){ instrucción o bloque }else { instrucción o bloque; } Java. Modulo 4

  39. Condicional anidada if else if ( expresión lógica ){ instruccióno bloque; } else if ( expresión lógica){ instruccióno bloque; } else if ( expresión lógica){ instruccióno bloque; } else { instruccióno bloque; } A lo mas se ejecutará una opción. Java. Modulo 4

  40. Condicional anidada if else Ejemplo: int cuenta; cuenta = cuentaAsistentes(); // funcion definida // en otro archivo if ( cuenta< 0 ){ System.out.println(“\nError: cuenta es negativa.\n"); cuenta = 0; } else if (cuenta> MAXIMO ) System.out.println(“\nError: cuenta es excesiva.\n"); else System.out.println(“Asistieron ”+ count +“ personas hoy."); Si hay mas de una instrucción o comando las llaves no pueden ser omitidas. Java. Modulo 4

  41. Condicional múltiple switch switch ( expresion-prueba ){ caseconstante-1: comandos; break; caseconstante-2: comandos; break; default: comandos; break; } expresion-prueba: expresión entera constante-n constante entera, o de carácter que es utilizada para aparearla con la expresión de prueba. Java. Modulo 4

  42. Estructura de control switch Ejemplos switch ( modeloAuto ){ case DELUJO: agregarAireAcon(); agregarRadio(); agregarRuedas(); agregarMotor(); break; case ESTANDAR: agregarRadio(); agregarRuedas(); agregarMotor(); break; default: agregarRuedas(); agreagarMotor(); } switch ( modeloAuto ){ case DELUJO: agregarAireAcon(); agregarAlfombra(); case ESTANDAR: agregarRadio(); agregarDescongel(); default: agregarRuedas(); agregarMotor(); } Java. Modulo 4

  43. Condicional anidada if else En la ausencia de llaves : un else se aparea con el if mas cercano precedente, siempre que no tenga un else apareado con el. Java. Modulo 4

  44. Condicional anidada if else double promedio; promedio = 100.0; if ( promedio >= 60.0 ) if ( promedio < 70.0 ) System.out.println( “LETRERO IMPORTANTE ” ); else System.out.println( “\n SORPRESA \n” ); 100.0 promedio ¿Cuáles la salida en esteejemplo? ¿PORQUÉ?: El compilador ignora las sangrias y aparea el else con el segundo if. Java. Modulo 4

  45. Instrucción falso . . . Condición verdadero La Iteración repite una secuencia de instrucciones mientras sea verdadera cierta condición. ITERACIÓN (repetición) Java. Modulo 4

  46. ITERACIÓN (repetición) Sintaxis ciclo while while( exp_booleana ){ instrucción o bloque; } Ejemplo ciclo while int i = 0; while( i < 10 ){ System.out.println(“Aun no termina”); i++; } Java. Modulo 4

  47. ITERACIÓN (repetición) Sintaxis ciclo for for( expr_ini; exp_prueba booleana; expr_incr ){ instrucción o bloque; } Ejemplo ciclo for for( int i=0; i< 10; i++ ){ System.out.println(“Aun no termina”); } Java. Modulo 4

  48. ITERACIÓN (repetición) Sintaxis ciclo do/while do { instrucción o bloque; }while (expr_booleana); Ejemplo ciclo do/while int i=0; do{ System.out.println(“Aun no termina”); i++; }while ( i < 10); Java. Modulo 4

  49. Seudocódigo y selección SIMPLE DOBLE MÚLTIPLE Java. Modulo 4

  50. Seudocódigo e iteración Java. Modulo 4

More Related