2. Variables
Sirven para referirse tanto a objetos como a tipos primitivos.
Tienen que declararse antes de usarse:
tipo identificador;
int posicion;
Se puede inicializar mediante una asignación:
tipo identificador = valor;
int posicion = 0;
Definición de constantes:
static final float PI = 3.14159f;
El lenguaje de programación Java
2
3. Tipos primitivos de datos en JAVA
enteros: int, long, short, byte
Const. 1, -1, 1024, 1L
reales: float, double
Const. 1.0, -3.14159, 1.5e4, 1.0f
caracter: char
Const. ‘a’, ‘X’, ‘@’
lógico: boolean
Const. true, false
Constantes de String: “Hola“,“12 de Abril“
3
4. Operadores
El lenguaje de programación Java
4
Operadores Asociatividad Tipo
() izquierda a derecha paréntesis
++ -- + - ! derecha a izquierda unarios
* / % izquierda a derecha multiplicativos
+ - izquierda a derecha aditivos
< <= > >= izquierda a derecha relacionales
== != izquierda a derecha de igualdad
& izquierda a derecha AND lógico booleano
^ izquierda a derecha OR exclusivo lógico booleano
| izquierda a derecha OR inclusivo lógico booleano
&& izquierda a derecha AND lógico
| | izquierda a derecha OR lógico
?: derecha a izquierda condicional
expresion ? sentencia1 : sentencia2
= += -= *= /= %= derecha a izquierda asignación ej. x += y x = x + y;
• En orden de precedencia:
5. Expresiones y asignación
Aritmeticas: suma + 20 * c / (mod % 3)
Relacionales: a > b, b >= c, c != 4, a == 0
De String: “hola “+ nombre + “ hoy es “+
dia + “de”+mes
Casts: (int) pi (pi = 3.1) (int) (Math.random()*100)+1)
Otros: a == 1 ? a+1 : a-1
Asignacion: a = 1;
Asignación como operador: a = b = c = d = 0;
boolean cero = ( b = c - 10) == 0;
5
6. Declaraciones
int i;
int i = 1;
double pi = 3.14159;
char c = ‘a’;
boolean estamos_bien = true;
Las declaraciones de variables pueden ir en cualquier parte del programa pero
siempre antes de que la variable sea usada.Hay que tener cuidado con el
rango de validez (scope) de la declaración
6
7. Ejemplos
int i = 1;
long l = i; //ok
l = 1000000000000;
float f = l; //ok
double d= 1.0e24; int i = d; // Error
float f = 1.0f; int i = f; //
Error
short s = i; //Error
double d = 1.0; int i = (int)d; //ok
int i = 256;
byte b = (byte)i; //ok pero b ==0;
7
8. Control de flujo
El lenguaje de programación Java
8
if( expresión-booleana )
{
sentencias;
}
[else {
sentencias;
}]
switch(expresión) {
case valor1:
sentencias;
break;
case valor2:
sentencias;
break;
[default:
sentencias;]
}
• Control de saltos:
9. Ejemplos
1) int saldo;
…
if (saldo<0)
System.out.println(“Cuenta en números rojos”);
2) int dia;
…
switch (dia){
case 1: System.out.println(“Lunes”); break;
case 2: System.out.println(“Martes”); break;
…
case 7: System.out.println(“Domingo”); break;
}
El lenguaje de programación Java
9
11. Instrucciones de Control
Instrucción condicional: if (cond) instr;
if(cond) instr; else instr;
Ciclos: while (cond) instr;
Ciclos: do instr; while (cond);
Ciclos for (instr1; i<10; instr2)
instr;
Selección switch/case
Agrupación de instrucciones bajo un if, else, while, for, etc. se realiza con
paréntesis crespo { }
11
12. 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.
12
13. Conversiones de tipo
Java no reclama si un tipo de menor rango se convierte as uno de
mayor rango.
byte < short < int < long < float < double
13
Tipo Bits Rango
int 32 -2**31 .. 2**31-1
short 16 -2**15 .. 2**15-1
byte 8 -2**7 .. 2**7-1
long 64 -2**63 .. 2**63-1
float 32 -10**32 .. 10**32
double 64 -10**300 .. 10**300
14. Programa Ejemplo
public class MCD {
//calculo del maximo comun divisor entre 15 y
24
public static void main(String args[ ]) {
int x = 15, y = 24;
while (x != y) {
if (x < y)
y = y - x;
else
x = x - y;
}
System.out.println(“el MCD entre 15 y 24
es “ + x);
}
}
14
15. 15
Los argumentos de un programa
Si se invoca al programa P1 de ka siguiente manera: java P1
estos son parametros entonces en el programa se tendrá
args[0] = “estos”, args[1] = “son”, args[2] = “parametros”.
Se reciben como un arreglo de strings en la variable declarada
como parámetro del programa String args[]
public class Parametros {
public static void main(String args[]) {
for(int i=0; i < args.length; i++)
System.out.pritnln(args[i]);
}
}
16. 16
Exceptions
Una Exeption es un evento que rompe la ejecución normal de un
programa (debido a un error). Cuando ocurre un evento como este un
objeto de la clase Exception es generado o “lanzado” (throw).
Existen varios tipos de clases derivadas Exception dependiendo de que
fue lo que originó el evento: IOException, IndexOutOfBoundsException,
UnknownHostException, etc.
Cuando esto sucede, el intérprete de JAVA busca un exception handler
adecuado para esta exception, que ejecuta un pedazo de código
(programado por el usuario) que debería reaccionar en forma adecuada
a esta falla del programa. Esto se llama “atrapar una exception” (catch).
Cuando no se ha escrito ningún ningún handler que atrape esta
exception, el programa se detiene (se cae). La razón para introducir
exceptions es que la programación para reaccionar ante fallas se hace
más fácil (no hay que preverlas todas).
17. 17
Cómo programar Exception Handlers ?
Forma general: en un bloque try-catch
try {
lista de instrucciones que pueden generar un error
}
catch (ExceptionTipo1 e) {
lista de instrucciones para enmendar el error de Tipo1
{
catch (ExceptionTipo2 e) {
lista de instrucciones para enmendar el error de Tipo1
}
catch (ExceptionTipo3 e) {
lista de instrucciones para enmendar el error de Tipo1
}
Si no se conoce o no importa el tipo de exception
específico se puede poner Exception y se atrapan todos
(basta un solo bloque cach). Si hay más de un bloque se
ejecuta sólo un bloque catch según el tipo de error.
18. 18
Ejemplo de Exception I/O
Muchas veces el compilador OBLIGA a programar el código de modo
de atrapar exceptions cuando estas pueden suceder con cierta probabilidad.
Las más frecuentes son las de IO.
import java.io.*; //importa clases de la biblioteca IO
public class ProgrmaÍO{
public static void main(String args[]) {
BufferedReader in; PrintWriter out; String line;
try { in = new BufferedReader(new FileReader(“Origen.txt”))};
catch (IOException e) {
System.out.println(“error en apertura”); System.exit(1);}
try { out = new PrintWriter( new FileWriter(“Destino.txt”))};
catch (IOException e) {
System.out.println(“error en creacion”); System.exit(1);}
try {
while( (line = in.readLine()) != null)
out.println(line);
catch (IOException e) { System.out.println(“problemas”);}
}
}
19. 19
Ejemplo de Exception I/O (2)
Se puede omitir poner tantos try-catch si no importa donde sucedió
import java.io.*; //importa clases de la biblioteca IO
public class ProgrmaÍO2{
public static void main(String args[]) {
BufferedReader in; PrintWriter out; String line;
try {
in = new BufferedReader(
new InputStreamReader(System.in));
out = new PrintWriter( new FileWriter(“Destino.txt”));
System.out.println(“ingrese linea”);
while( (line = in.readLine()) != “”){
out.println(line);
System.out.println(“ingrese linea”);
}
catch (Exception e) { System.out.println(“problemas”);
}
}
}
20. 20
Ejemplo de Exception I/O (3)
También se puede evitar tener que preocuparse de las exceptions
siempre y cuando el método que la pordría generar se declare
como que “lanza” una excepción:
import java.io.*; //importa clases de la biblioteca IO
public class ProgrmaÍO3{
public static void main(String args[]) throws IOException{
BufferedReader in; PrintWriter out; String line;
in = new BufferedReader(new FileReader(“Origen.txt”));
out = new PrintWriter( new FileWriter(“Destino.txt”));
while( (line = in.readLine()) != null)
out.println(line);
}
}
Esto implica que el programa se caerá si hay una excepción
durante la generación del programa. En otros casos se
puede declarar que uno o más métodos lanzan una
IOException y el programa o método principal se preocupa
de escribir el Exception handler.