Está en la página 1de 7

Programa Java

El lenguaje de programación
Un programa Java está formado por un
Java conjunto de clases que interactúan
entre sí
„ La clase es la unidad básica de
programación
La ejecución depende de la clase
pública a la que se invoque con el
intérprete
Tema 2. Fundamentos de Java. Tema 2. Fundamentos de Java.
LPS 2005. 1 LPS 2005. 2

Programa Java Comentarios


/*Primer programa de ejemplo*/ Permiten documentar el código haciéndolo
más legible a los programadores
// comentario de una sóla línea
//definicion de clase publica o accesible
public class PrimeraAplicacion {
/* Un comentario
// programa principal de la clase que aparece en varias
líneas
public static void main(String args[]){ */
// escritura por pantalla
System.out.println( "Esta es la
/** Comentario de documentación.
primera aplicacion" ); La herramienta javadoc extrae los comentarios del código y
} genera html a partir de este tipo de comentarios
} */
Tema 2. Fundamentos de Java. Tema 2. Fundamentos de Java.
LPS 2005. 3 LPS 2005. 4

Identificadores Palabras reservadas


Permiten nombrar los distintos elementos de Palabras reservadas con propósito especial
un programa en el sistema y que no se pueden utilizar
„ variables, objetos, clases, paquetes, interfaces como identificadores
Sintaxis: abstract continue for new switch volatile
boolean default goto null synchronized while
„ Comienzan con letra (incluyendo _ y $) break do if package this
byte double implements private threadsafe
„ Seguido de letras o dígitos byvalue else import protected throw
„ Cualquier longitud case extends instanceof public throws
catch false int return transient
„ Se distinguen mayúsculas de minúsculas char final interface short true
class finally long static try
Ejemplos: const float native super void
Š x
Š _var1
Otras palabras reservadas (sin uso actual):
Š MAXIMO cast future generic inner operator outer
Tema 2. Fundamentos de Java. rest var
Tema 2. Fundamentos de Java.
Š $Caracter LPS 2005. 5 LPS 2005. 6

1
Literales Literales
„ Caracteres: un carácter UNICODE, entre comillas
simples
Valor constante de un tipo de datos Š ‘N’ ‘\116’ (Octal) ‘\U00A2’ (Hexadecimal)
„ Booleanos, siempre en minúsculas Š Caracteres especiales:
Š true y false Š \b retroceso
„ Numéricos enteros Š \t tabulador
Š \n salto de línea
Š Decimal: 12 0 134L (L para Long, I para Integer)
Š \r cambio de línea
Š Octal: O25 (O delante)
Š \” carácter comillas dobles (desinterpretado)
Š Hexadecimal: Ox15 (Ox delante) Š \’ carácter comillas simples
„ Numéricos reales, con punto, no con coma Š \\ carácter barra invertida
Š Double: 28.4 5.3 .65 4.87d 1e3 (es 1×103) „ Cadenas de caracteres de la clase String, entre
78.34e-4d (la d de double es comillas dobles
opcional al final) Š “Hola Mundo.” +” otro ejemlplo” + “ +es un operador
Š Float: 1e2f .84f 2.F (‘f’ o ‘F’ detrás del valor) concatenador de textos”
Tema 2. Fundamentos de Java. „ Referencia literal
Temade objeto de Java.
2. Fundamentos
LPS 2005. 7 LPS 2005. 8
Š null

Variables Constantes con nombre


Unidad básica de almacenamiento de Variable constante
información
„ Variable cuyo valor nunca cambia
Elementos cuyo valor puede cambiar durante
el programa „ Se declaran con la palabra clave final
Declaración
tipo identificador; „ final float PI = 3.141592;
tipo identificador [= valor_inicial] [, ident [= „ final int MAX = 255;
valor_ini] ] …; „ final int ABIERTO = 0, CERRADO = 1;
numero ?
„ Ejemplos „ final boolean FALSO = false;
int numero; max 5
int max= 5;
boolean sino = true;
Tema 2. Fundamentos de Java. sino true Tema 2. Fundamentos de Java.
LPS 2005. 9 LPS 2005. 10

Tipos primitivos Tipos primitivos


Enteros (con signo): MIN_VALOR
MAX_VALOR
Š byte 8 bits -128 +127
Š short 16 bits -32768 +32767 byte short int long float double
Š int 32 bits -2147483648 +2147483647
Š long 64 bits -2**63 2**63-
„ 0 1 -1 29 035 0x1d 29L
„ Reales (coma flotante, IEEE 754-1985):
Š float 32 bits
Š double 64 bits
„ 24. 2.4e1 .24e2 0.0 char
„ Lógico o booleano: 1 bit
Š boolean
„ true false Conversión automática
„ Caracteres (ISO Unicode 1.1 de 16 bits): Necesita casting
Š char
„ ‘a’ ‘A’ ‘\n’ ‘\t’ ‘\u0058’ Æ ‘X’
Tema 2. Fundamentos de Java. Tema 2. Fundamentos de Java.
LPS 2005. 11 LPS 2005. 12

2
Tipos primitivos Ejemplo
int i, j;
long x;
float f;
double d;
// ...
i = j; // mismo tipo
x = i; // OK
i = x; // NO, se perdería información
i = (int) x; // Se necesita casting
d = i; // OK
f = d; // NO
Tema 2. Fundamentos de Java. Tema 2. Fundamentos de Java.
LPS 2005. 13 LPS 2005. 14

Ejemplo Expresiones
public class MathDemo {
public static void main(String[] args) { Las expresiones son instrucciones que
double values[] = {11.5, 12.5, -12.5, -13.5}; devuelven un valor lógico
for (int i=0;i<values.length;i++) { „ Cada expresión tiene un tipo que se determina en
double current = values[i]; tiempo de compilación
System.out.println("value: "+current); Una expresión puede ser:
System.out.println("ceil: "+Math.ceil(current)); „ una constante (un literal): true 0 1.0
System.out.println("floor:"+Math.floor(current)); „ una variable x resultado
System.out.println("round: "+Math.round(current)); „ una combinación de constantes, variables,
System.out.println(); operadores y llamadas a métodos
Š x+1
}
Š ((x==3) || b)
} Tema 2. Fundamentos de Java. Š Math.random() //Fundamentos
Tema 2. genera undenúmero
Java. aleatorio entre 0 y
} LPS 2005. 15 1 LPS 2005. 16

Operadores aritméticos Ejemplo


Š Suma: + // ejemplo de operadores aritméticos
Š Resta: - public class PruebaAritmetica {
public static void main (String args[]) {
Š Multiplicación: *
short x = 6;
Š División: / int y = 4;
Š resto: % float a = 12.5f;
Promoción automática de tipos float b = 7f;
„ Cuando los tipos de operandos no coinciden, el
operando de menor rango se convierte System.out.println("x es " + x + ", y es " + y);
implícitamente al tipo de mayor rango: System.out.println("x + y = " + (x + y));
double > float > long > int > short > byte System.out.println("x - y = " + (x - y));
„ La conversión descendente es obligatoria -pierde decimales-: System.out.println(“Div. Ent: x / y = " + (x/y));
(int)32
„ El resultado de la operación es del tipo de mayor System.out.println(”Resto: x % y = " + (x % y));
rango System.out.println("a es " + a + ", b es " + b);
„ Al operar con byte y short, se convierten System.out.println("a / b = " + (a / b));
implícitamente Tema
a int2. Fundamentos de Java. } Tema 2. Fundamentos de Java.
LPS 2005. 17 LPS 2005. 18
}

3
Operadores aritméticos Expresiones booleanas
Operadores lógicos
Operadores aritméticos unarios „ y lógico: x && y (cortocircuito)
„ preincremento: ++x x & y (completo)
„ postincremento: x++ „ o lógico: x || y (cortocircuito)
„ predecremento: --x x | y (completo, evalunado ambos operandos)
„ postdecremento: x-- „ negación: !x
Operadores de asignación Operadores relacionales: Comparaciones
„ normal: x = y „ igual: x == y (sólo con tipos básicos no objetos)
„ adición: x += y x = x + y „ diferente: x != y
„ resta: x -= y x = x - y „ mayor que: x>y
„ menor que: x<y
„ multiplicación: x *= y x = x * y „ mayor o igual que: x >= y
„ división: x2. /=
Tema y de Java.
Fundamentos x = x / y „ menor o igual que:
Tema x <=de yJava.
2. Fundamentos
LPS 2005. 19 LPS 2005. 20

Ejemplo: año bisiesto Expresiones a nivel de bits


// ejemplo de operadores enteros, lógicos y relacionales
public class Bisiesto {
// programa principal de la clase Operadores a nivel de bits (en enteros)
public static void main(String args[]) {
int anno=2000; „ AND: x&y
boolean sino; „ OR: x|y
// bisiesto si es múltiplo de 4 pero no de 100
// o bien si es múltiplo de 400 „ XOR: x^y
sino = (((anno % 4) == 0) && ((anno % 100) != 0)) || „ Desplazamiento izd: x << y
((anno % 400) == 0) );
System.out.println( "Año bisiesto, valor de sino " + „ Desplazamiento der: x >> y
sino);
anno++;
„ Desplazamiento der llenado de 0 a der: x >>> y
sino = (((anno % 4) == 0) && ((anno % 100) != 0)) || „ complemento de bits: ~x
((anno % 400) == 0) );
System.out.println( "Año bisiesto, valor de sino " +
sino);
}
} Tema 2. Fundamentos de Java. Tema 2. Fundamentos de Java.
LPS 2005. 21 LPS 2005. 22

Instrucciones, asignación y
Evaluación de expresiones bloque
Los operadores se
Postfix [] .(params) ++ --
Instrucción
Unarios ++ -- + - ~ !
„ Una orden que se le da al programa para realizar
evalúan de izquierda
Creación y
ast
new (type)
una tarea específica
Multiplicavos * / %
a derecha Aditivos + -
Asignación
Shift << >> >>> „ Acción que da el valor de una expresión a una
Precedencia de Relacionales < > <= >= instanceof variable
Igualdad == !=
variable = expresión;
operadores: Bitwise AND &
boolean condicion = true; // declaración y asignación
Bitwise XOR ^ de valor inicial
Bitwise OR | int numero; // declaración de entero
Logical AND && numero = Math.sqrt(90);
Logical OR || // asignación de la raíz cuadrada de 90
Condicional ?:
Tema 2. Fundamentos de Java. = *= /= %= += -= >>= Tema 2. Fundamentos de Java.
Asignación
LPS 2005. <<= >>>= &= ^=23|= LPS 2005. 24

4
Instrucciones, asignación y
bloque Instrucción condicional if
Bloque de instrucciones
if (expresión_booleana)
„ Conjunto de instrucciones que se
instrucción
consideran como una unidad
„ Están encerradas entre llaves { y }
if (expresión_booleana)
instrucción1
else
instrucción2

Tema 2. Fundamentos de Java. Tema 2. Fundamentos de Java.


LPS 2005. 25 LPS 2005. 26

Instrucción condicional if Ejemplo


„ Ejemplo: int i =0;
if ( x > y ){ i++;
// si hay mas instrucciones hay que poner un bloque
if (i == 0) { }
System.out.println("Dentro del if ");
System.out.println("El mayor de x e y es x: " + x);
int a[] = {1, 2, 3, 4, 5};
} a.length;
else if ( x < y ) i += 85;
System.out.println("El mayor de x e y es y: " + y); if ( (i == 0) && (a.length != 5) )
else { }
System.out.println("x,y tienen mismo valor:" + x); if ( (i == 0) || (a.length != 5) )
{ }
Tema 2. Fundamentos de Java. Tema 2. Fundamentos de Java.
LPS 2005. 27 LPS 2005. 28

Instrucción condicional Instrucción condicional


switch switch
switch (expresión) „ Se tiene que especificar break para salir de la
{ instrucción
case expresión-constante1: „ La expresión puede ser tipo char, byte, short o
int.
instrucciones
„ Se puede usar un conjunto de instrucciones para
case expresión-constante2: varios casos:
instrucciones case expresión-constantex:
... case expresión-constantey:
case expresión-constantez:
default: instrucciones instrucciones
}
Tema 2. Fundamentos de Java. Tema 2. Fundamentos de Java.
LPS 2005. 29 LPS 2005. 30

5
Ejemplo Bucles o Iteración: while
public class EjemploSwitch {
public static void main(String[] args) { Ejecutan de forma repetida un bloque de instrucciones hasta
int mes = 2;
switch (mes) { que se hace falsa la condición lógica
case 1: System.out.println("Enero"); break;
case 2: System.out.println("Febrero"); break; while (expresión_booleana)
case 3: System.out.println("Marzo"); break; instrucción
case 4: System.out.println("Abril"); break;
case 5: System.out.println("Mayo"); break; int a[] = { 1, 2, 3 ,4, 5};
case 6: System.out.println("Junio"); break; int sum = 0;
case 7: System.out.println("Julio"); break;
case 8: System.out.println("Agosto"); break; int i = 0;
case 9: System.out.println("Septiembre"); break;
while ( i<a.length ){
case 10: System.out.println("Octubre"); break;
case 11: System.out.println("Noviembre"); break; sum += a[i];
case 12: System.out.println("Diciembre"); break; ++i;
default: System.out.println("Este mes no }
existe"); break; } } } System.out.println("sum = " + sum);
Tema 2. Fundamentos de Java. Tema 2. Fundamentos de Java.
LPS 2005. 31 LPS 2005. 32

Bucles o Iteración: while Bucles o Iteración: while


public class Factorial { int a[] = { 1, 2, 3, 4, 5};
public static void main(String[] args) {
int dato=9;
int sum = 0;
long resultado=1;
while (dato > 0) { int i = 0;
resultado = dato * resultado; while ( i < a.length ){
dato = dato -1; sum = sum + a[i];
}
System.out.println("El factorial es: ” + resultado);
i = i + 1;
} }
}
System.out.println("sum = " + sum);

Tema 2. Fundamentos de Java. Tema 2. Fundamentos de Java.


LPS 2005. 33 LPS 2005. 34

Bucles o Iteración: do while Bucles o Iteración: do while


Ejecutan de forma repetida un bloque int a[] = { 1, 2, 3, 4, 5};
de instrucciones hasta que se hace falsa int sum = 0;
la condición lógica int i = 0;
Se ejecuta por lo menos una vez do {
sum = sum + a[i];
do i = i + 1;
instrucción
while (expresión_booleana)
} while ( i < a.length );
System.out.println("sum = " + sum);
Tema 2. Fundamentos de Java. Tema 2. Fundamentos de Java.
LPS 2005. 35 LPS 2005. 36

6
Bucles o Iteración: for Bucles o Iteración: for
Forma compacta de expresar bucles public class FactorialFor {
public static void main(String[] args) {
No sólo para un número de repeticiones int numero=9;
fijas long resultado=1;
for(int cont=1; cont <= numero; cont++){
resultado= resultado * cont;
}
for (inicialización;condición; incremento) System.out.println("El factorial es
instrucción "+resultado);
}
}

Tema 2. Fundamentos de Java. Tema 2. Fundamentos de Java.


LPS 2005. 37 LPS 2005. 38

Bucles o Iteración: for Otras instrucciones

int a[] = { 1, 2, 3, 4, 5}; Fin de ejecución de un método


int sum = 0; „ return ; // para los métodos void
„ return expresión ;
Š permite salir de cualquier ciclo dentro del método
for (int i=0; i<a.length; i = i + 1){ Š vuelve al punto donde se invocó el método
sum = sum + a[i]; Modificación del flujo de programa en los
} bucles
„ break
System.out.println("sum = " + sum) Š permite salir del bucle
„ continue
Š salta a la siguiente iteración
Tema 2. Fundamentos de Java. Tema 2. Fundamentos de Java.
LPS 2005. 39 LPS 2005. 40

Otras instrucciones Argumentos de entrada


:outer

public static void main(String[ ]


args){
:inner
for (int i = 0; i < args.length;
continue; i++)
continue outer;

break; break outer; System.out.println("Parámetro " + i


+ ": " + args[i]);
}

Tema 2. Fundamentos de Java. Tema 2. Fundamentos de Java.


LPS 2005. 41 LPS 2005. 42

También podría gustarte