clase iv
TRANSCRIPT
Programación de Sistemas
Lic. José Angel Quintanilla Rosales
Un programa bien escrito es su propio cielo; un programa mal escrito es su propio infierno. [Geoffrey James, El Tao
de la Programación]
2
JAVA es un lenguaje interpretado
Compilador de java (específico x plataforma) javac P1.java
P1.java P1.class
Intérprete de java (específico x plataforma) java P1 (class)
Salida del Prog.
3
Un primer programa en JAVA
public class Hello {
public static void main(String args[ ]) {
System.out.println(“Hola Mundo“);
}
}
● Todo programa es escrito como el método estático llamado main en una clase cualquiera
● Este método se empieza a ejecutar cuando se invoca el intérprete de java para una clase dada
● args es un arreglo de Strings que contiene los parámetros
● con los que fué invocado el programa.
Ámbitos
Ambito
Visibilidad
● Visibilidad: parte de programa en el que una variable es accesible sin ser calificada
● Las variables se pueden ocultar por otras con el mismo nombre en ámbitos más anidados
Visibilidad
Int a
Int a
Int a Int a
¿a?
Visibilidad
Variables
public class Basic { public static void main(String[] args) { int sum = 0; for (int current = 1; current <= 10; current++) { sum += current; } System.out.println("Sum = " + sum); }}
Basic¿Cúal es? ¿Qué tipo tienen? Alcance
Variables
public class Basic { public static void main(String[] args) { int sum = 0; for (int current = 1; current <= 10; current++) { sum += current; } System.out.println("Sum = " + sum); }}
Basic¿Cúal es? ¿Qué tipo tienen? Alcance
Variables
public class Basic { public static void main(String[] args) { int sum = 0; for (int current = 1; current <= 10; current++) { sum += current; } System.out.println("Sum = " + sum); }}
Basic¿Cúal es? ¿Qué tipo tienen? Alcance
Operadores
● Unariosop1 operatoroperator op1
● Binariosop1 operator op2
● Ternariosop1 operator1 op2 operator2 op3
Operadores aritméticos
● Binarios– Suma: op1 + op2– Resta: op1 – op2– Multiplicacion: op1 * op2– Divisió n: op1 / op2– Mó dulo: op1 % op2
OperadoresAritmeticos
Operadores aritméticos
● Operaciones con enteros y reales
● El resultado depende de los operadores– Algún double -> double– Algún float -> float– Algún long -> long– Si no, int
Operadores aritméticos
● Unarios– Número negativo (-2, -123)– Convierte byte y short en int (+2, +65)
● Suma / resta unaria– ++op1– op1++– --op1– op1--
Operadores de comparación
● Devuelven booleanos– Igualdad: op1 == op2– Desigualdad: op1 != op2– Mayor que: op1 > op2– Mayor o igual que: op1 >= op2– Menor que: op1 < op2– Menor o igual que: op1 <= op2
OperadoresComparacion
Operadores de comparación
● Mucho cuidado con la igualdad
● Cuando se comparan variables referencia, se compara si ambos objetos son el mismo, no si son iguales (tienen el mismo estado)
● Error típico
OperadoresComparacion
Operadores booleanos
● Operan sobre booleanos y devuelven booleanos– AND: op1 && op2– OR: op1 || op2– NOT: !op1– XOR: op1 ^ op2
Operadores booleanos
● Java só lo evalúa si es necesario
● Si el primer operando de un AND es false, no evalúa el segundo y devuelve false– Lo mismo con OR
● Para obligar a evaluar el segundo operando, usar & (AND) y | (OR)
OperadoresBooleanos
Operadores de desplazamiento
● Opera sobre enteros y devuelve enteros– Desplazar a izquierda: op1 << num– Desplazar a derecha
op1 >> num (extiende signo)op1 >>> num (no extiende signo)
OperadoresDesplazamiento
Operadores lógicos
● Operan sobre bits de los enteros– AND: op1 & op2– OR: op1 | op2– XOR: op1 ^ op2– Complemento: ~op1
OperadoresBinarios
Operadores de asignación
● Asigna el valor de una variable a otra– op1 = op2
● Deben ser compatibles en tipo– Enteros, reales, carácter– Misma clase o subclases
● Al asignar variables referencia, no se hace una copia del objeto
Operadores de asignación
● Asignació n con operació n
op1 = op1 operador op2 (a = a + b)
op1 operador= op2 (a += b)
● +, -, *, /, %, &, |, ^, <<, >>, >>>
Otros operadores
● ?: (if-then-else)if (a == b) then c else d;a == b ? c : d
● [] - indexació n de arrays
● . (punto): acceso a métodos y variables
● (): para especificar los argumentos a métodos