Clase iv

22
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]

Transcript of Clase iv

Page 1: Clase iv

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]

Page 2: Clase iv

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.

Page 3: Clase iv

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.

Page 4: Clase iv

Ámbitos

Ambito

Page 5: Clase iv

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

Page 6: Clase iv

Visibilidad

Int a

Int a

Int a Int a

¿a?

Visibilidad

Page 7: Clase iv

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

Page 8: Clase iv

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

Page 9: Clase iv

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

Page 10: Clase iv

Operadores

● Unariosop1 operatoroperator op1

● Binariosop1 operator op2

● Ternariosop1 operator1 op2 operator2 op3

Page 11: Clase iv

Operadores aritméticos

● Binarios– Suma: op1 + op2– Resta: op1 – op2– Multiplicacion: op1 * op2– Divisió n: op1 / op2– Mó dulo: op1 % op2

OperadoresAritmeticos

Page 12: Clase iv

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

Page 13: Clase iv

Operadores aritméticos

● Unarios– Número negativo (-2, -123)– Convierte byte y short en int (+2, +65)

● Suma / resta unaria– ++op1– op1++– --op1– op1--

Page 14: Clase iv

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

Page 15: Clase iv

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

Page 16: Clase iv

Operadores booleanos

● Operan sobre booleanos y devuelven booleanos– AND: op1 && op2– OR: op1 || op2– NOT: !op1– XOR: op1 ^ op2

Page 17: Clase iv

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

Page 18: Clase iv

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

Page 19: Clase iv

Operadores lógicos

● Operan sobre bits de los enteros– AND: op1 & op2– OR: op1 | op2– XOR: op1 ^ op2– Complemento: ~op1

OperadoresBinarios

Page 20: Clase iv

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

Page 21: Clase iv

Operadores de asignación

● Asignació n con operació n

op1 = op1 operador op2 (a = a + b)

op1 operador= op2 (a += b)

● +, -, *, /, %, &, |, ^, <<, >>, >>>

Page 22: Clase iv

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