Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC. Variables y expresiones aritméticas Conceptos de Memoria Variables Una variable es un espacio en la memoria del PC Cada variable tiene un nombre, un tipo , un tamaño y un valor Programación Orientada a Objetos 3 Declaración e inicialización de variables de Memoria Para declarar una variable: int number1; Para inicializar una variable: number1 = 45; Se puede declarar e inicializar al mismo tiempo: int number2 = 72; int sum = number1 + number2; Programación Orientada a Objetos 4 Expresiones Aritméticas Operación Operador Expresión algebráica Expresión Java Adición + f+7 f+7 Substración – p–c p-c Multiplicación * bm b*m División / x/y ó ó x÷y x/y La división entre enteros trunca el resultado: 7 / 5 es igual a 1 Operador módulo (%) obtiene el residuo 7 % 5 es igual a 2 Programación Orientada a Objetos 5 Precedencia de los operadores Algunos operadores aritméticos actúan antes que otros, por ejemplo, la multiplicación antes de la adición Coloque paréntesis para evitar ambigüedades y facilitar la lectura de la expresión a + b + c / 3 ( a + b + c ) / 3 Programación Orientada a Objetos 6 Tipos primitivos de Java Ejemplos double d1 = 123.4; double d2 = 1.234e2; float f1 = 123.4f; short edad; Valores Por defecto para Tipos primitivos de Java Al crear las variables ellas se inicializan con un valor por defecto Constantes Si se quiere que un valor permanezca sin cambiar durante la ejecución de un programa, se debe usar una constante. Utilice la palabra reservada final para definir una constante y asigne un valor en su declaración. Programación Orientada a Objetos 9 Tipos de Estructuras de control Tipos de Estructuras de Control En Java las sentencias de un programa se ejecutan normalmente en el orden en que son escritas. Los programas Java se componen de tres tipos de estructuras de control Estructuras de secuencia Estructuras de selección Estructuras de repetición Programación Orientada a Objetos 11 Estructuras de selección Sentencia if Sentencia if else Sentencia de selección simple Sentencia de selección doble Sentencia switch Sentencia de selección múltiple Programación Orientada a Objetos 12 Estructuras de repetición También conocidas como ciclos Ejecutan de manera repetida una acción mientras la condición del ciclo sea verdadera Sentencia while Sentencia do while Ejecuta las acciones de su cuerpo 0 ó más veces Ejecuta las acciones de su cuerpo 1 ó más veces Sentencia for Ejecuta las acciones de su cuerpo 0 ó más veces Programación Orientada a Objetos 13 Otros Elementos para estructuras de secuencia Cast implícito entre Tipos Cuando se mezclan tipos de datos en las expresiones se usan reglas de promoción que aseguran que los tipos de datos de los operandos de la expresión son iguales La promoción se realiza hacia el tipo de variable de mayor precisión. Programación Orientada a Objetos 15 Cast explícito entre Tipos La promoción puede realizarse de manera explícita precediendo la expresión del tipo deseado encerrado entre paréntesis. Programación Orientada a Objetos 16 Otros métodos de conversión Errata: los parámetros deben ser cadenas (String) entre " y no ' Programación Orientada a Objetos 17 Sobrecarga del operador + output = “test” + 1 + 2; Programación Orientada a Objetos output = 1 + 2 + “test”; 18 Operadores de asignación compuestos Una sentencia de la forma: variable = variable operador expresion; Donde operador es uno de los siguientes: + - * / % Puede ser escrita de manera abreviada como: variable operador= expresion; No puede existir espacio entre el operador y el signo igual Programación Orientada a Objetos 19 Ejemplos de operadores de asignación compuestos 6 2 6 Programación Orientada a Objetos 20 Operadores de incremento y decremento Operador unario de incremento ++ Operador unario de decremento - suma uno a su operando Resta uno a su operando Prefijo y Postfijo Si el operador unario está antes del operando: cambia el valor del operando antes de usarlo Si el operador unario está después del operando: usa el operando y luego cambia dicho valor Programación Orientada a Objetos 21 Ejemplos de operadores de incremento y decremento 5 4 4 5 Programación Orientada a Objetos 22 Estructuras de selección Sentencia if simple Ejecuta una acción si la condición especificada es cierta la condición debe escribirse entre paréntesis ( ) la condición siempre se evalúa como falso ó verdadero La acción a ejecutar se debe encerrar en un bloque de código con los signos { y } Si el cuerpo sólo tiene una sentencia no son necesarias las llaves El control del programa siempre continua después de la sentencia if Programación Orientada a Objetos 24 Operadores de Igualdad y Operadores Relacionales Operator estándar matemático Operadores de Igualdad = ≠ Operadores Relacionales > < ≥ ≤ Programación Orientada a Objetos Operador Java Condición Significado == != x == y x != y x es igual a y x es diferente a y > < >= <= x x x x x es mayor que y x es menor que y x es mayor ó igual que y x es menor ó igual que y > y < y >= y <= y 25 Ejemplo if simple Programación Orientada a Objetos 26 Sentencia if else Ejecuta una acción si la condición especificada es cierta (if ( ) ó una acción diferente si la condición especificada es falsa (else ). ( Programación Orientada a Objetos 27 Operador Condicional ? : Java tiene un operador ternario ? :, que tiene la forma: condición ? accion por verdadero : accion por falso Programación Orientada a Objetos 28 Sentencias if-else anidadas Las sentencias if else pueden ser colocadas dentro de otras sentencias if else Problema del balanceo del else Los else son asociados al último if Preferible colocar { y } para romper dicho problema Programación Orientada a Objetos 29 Ejemplo if-else anidadas Programación Orientada a Objetos 30 Problema del balanceo del else Buenas prácticas: usar siempre llaves y evitar anidamiento de if-else Programación Orientada a Objetos 31 Operadores Lógicos Permiten formar condiciones más complejas mediante la combinación de sentencias sencillas Operadores lógicos de Java && (AND) || (OR) ! (NOT) Tablas de verdad Programación Orientada a Objetos 32 Ejemplos Operadores Lógicos int edad = 10; String genero = "femenino"; // operador AND if (edad >= 18 && genero.equals("femenino") { System.out.println("Mujer mayor de edad"); } // operador OR if (edad < 18 || genero.equals(""){ System.out.println("No habilitado para votar"); } // operador NOT if (! genero.equals("femenino") { System.out.println("Hombre"); } 33 Evaluación condiciones if (edad >= 18 && genero.equals("femenino") { System.out.println("Mujer mayor de edad"); } Si edad es menor que 18 la evaluación de la expresión se detiene Programación Orientada a Objetos 34 Variables booleanas Programación Orientada a Objetos 35 Operador == en Cadenas Las cadenas en java son objetos, no tipos primitivos. El == en cadenas compara direcciones de memoria. En el primer ejemplo las variables cadenas no tienen la misma dirección, en el segundo sí. PARA COMPARAR VALORES DE CADENAS SE DEBE USAR equals Programación Orientada a Objetos 36 Sentencia switch Usada para múltiples selecciones Una serie de if-else pueden ser reemplazados por un switch para mejorar la legibilidad del código. Programación Orientada a Objetos 37 Expresión del switch puede ser de tipo: int, char, constantes Cada valor de “opcion” tiene un case Ejemplo switch break rompe y sale del switch - Caso sino(else) Programación Orientada a Objetos 38 Nota del switch/break Omitir sentencias break en el switch, causa el cuerpo del siguiente case se ejecute también, sin importar la condición. Programación Orientada a Objetos 39 Bibliografía C. Thomas Wu. An Introduction to Object Oriented Programming with Java Paul Deitel. Como programar en Java 7/e. Pearson Education. 2007. Programación Orientada a Objetos 40