Está en la página 1de 44

EL LENGUAJE JAVA

Conceptos b asicos Variables: nombre, tipos, campo de acci on, iniciaci on. Operadores: aritm eticos, relacionales y condicionales, bit a bit, de asignaci on, cast. Arrays y Strings. Expresiones. Sentencias y bloques: declaraci on, asignaci on, funci on, control de ujo (while, for, do-while, if-else, else-if, switch), excepciones, bifurcaci on.

VARIABLES
Las variables son zonas o espacios de memoria en las que se almacena la informaci on. Son los pilares de la programaci on y los elementos sobre los que se act ua. Es necesario especicar su nombre y su tipo. el nombre sirve para saber a qu e zona de memoria se est a uno reriendo. el tipo sirve para saber el tama no de la memoria necesario para almacenarla y c omo debe interpretarse la informaci on. Al declarar una variable, debe especicarse su tipo y su nombre. int a,b; String nombre,domicilio; long d; boolean f;

Nombre de una variable


1. Debe comenzar siempre con una letra (may uscula o min uscula) o con un signo de subrayado (_). 2. El resto del nombre puede estar formado por combinaciones de letras, n umeros y signos de subrayado. Por ejemplo miEdad, Edad_1,A1 3. No debe incluir espacios ni caracteres como & y *. 4. Debe ser un identicador legal de Java formado por una serie de caracteres unicados (Unicode). 5. No debe coincidir con una palabra clave ni con true o false. 6. Tampoco debe coincidir con el nombre de otra variable declarada en su mismo campo de acci on, pudiendo hacerlo con variables declaradas en diferente campo. 7. Java distingue entre may usculas y min usculas. 8. Por convenio, las variables tienen nombres signicativos formados por varias palabras combinadas, la primera en min usculas y las que le siguen con la letra inicial en may uscula. int nMaxFactores; float numeroVariable;

Tipos de datos
Hay tres tipos de variables o expresiones: B asicas: contienen la informaci on propiamente dicha. Estas pueden ser: Num ericas: a su vez pueden ser: Enteras: byte, short, int, long, que toman valores enteros. Coma otante: float (simple precisi on), double (doble precisi on), que toman valores reales. Booleanas: boolean, que toman los valores l ogicos true y false. Tipo car acter: char, que toman s olo valores de tipo car acter. Referenciales: no contienen la informaci on, sino d onde se encuentra esta, es decir, son referencias a objetos. Estas pueden ser: Tipo clase: class, que almacenan el ejemplar de una clase. Tipo interfase: interface, que contienen referencias a una interfase. Tipo matriz: array, que contienen referencias a una matriz. Tipo nulo: es un tipo especial que no tiene nombre. La referencia nula null es el u nico valor que puede tomar una expresi on de este tipo.

EJEMPLO
class Variables{ public static void main(String args[]){ byte b=127; short s=32767; int i=-21000000; long l=89675003445667; float f=-3.40282e+38; double d=1.79769e+308; boolean bl=true; char c=c; DataInputStream d=new DataInputStream(); String aux; while((aux=d.readLine())!=null){ ------------------------} } }

Tipo Tama no byte 8 bits short 16 bits int 32 bits long 64 bits float 32 bits double 64 bits boolean N/A char 16 bits

M nimo M aximo 256 255 32768 32767 2147483648 2147483647 9223372036854775808 922337203685477580 224 E 149 224 E 104 253 E 1045 253 E 1000 false true Car acter Unicode

Table 1: Tipos de datos o variables b asicas.

Observaciones: El tipo double tiene m as precisi on y puede almacenar m as cifras decimales. En la mayor a de los ordenadores, los enteros se procesan mucho m as r apido que los n umeros almacenados en coma otante. Los n umeros en coma otante pueden almacenar valores m as grandes y m as peque nos que los enteros.

Campo de acci on de una variable


Se denomina campo de acci on de una variable al bloque de c odigo en el que dicha variable es accesible. Adem as, este campo determina cu ando la variable se crea y se destruye. Atendiendo al campo de acci on, se pueden clasicar las variables en las clases siguientes: Variable de clase. Se declara dentro de la denici on de una clase o interfase, usando la palabra clave static. Variables miembro de una clase. Se declaran en la denici on de una clase sin usar la palabra clave static.

Componentes de una matriz. Son variables sin nombre que se crean e inician a valores concretos o por defecto cuando se crea un objeto nuevo de tipo matriz. Las componentes de la matriz dejan de existir cuando desaparece la misma. Variable local. Se declara dentro de un bloque de c odigo y s olo es accesible dentro del mismo. Las variables locales no se inician hasta que se ejecuta la sentencia de declaraci on correspondiente. Las variables locales dejan de existir cuando se termina el bloque en el que est an declaradas. Par ametro de un m etodo o constructor. Es el argumento formal de un m etodo o un constructor, mediante el cual se pasan valores al mismo. Su campo de acci on es el m etodo o constructor del cual es argumento. Par ametro de un manipulador de excepciones. Es el argumento de un manipulador de excepciones.

EJEMPLO
class DrawPanel extends Panel{ static int dimension; int x,y; double[] a=new double[10]; void Draw(Graphics g) { int RectLength=80; g.setColor(Color.blue); g.fillRect(x,y,RectLength,RectLength); g.setColor(Color.black); } }

Iniciaci on de variables
Al declarar las variables locales, las de clase y las que son miembros de clases pueden darse valores iniciales. Por ejemplo: int edad=30; double estatura=1.78; boolean Terminado=true; int edad, altura=1.72; int a=4, b=5, c=6; x=y=z=0; Adem as de reservar espacio en memoria para ellas, se almacenan los valores indicados. Los par ametros de los m etodos y los de los manipuladores de excepciones no pueden iniciarse de este modo. El valor de estos par ametros es jado por el m etodo que los llama.

CONSTANTES
Las constantes en Java son como las variables, pero su valor no se altera durante la ejecuci on del programa. Se las precede del adjetivo final. Por convenio, las constantes se escriben todas en may usculas. Por ejemplo: final double PI=3.14159265358979; final double E=2.71728182;

COMENTARIOS
Existen tres clases de comentarios: /* texto */. El texto comprendido entre /* y */ es ignorado por el compilador. Se utiliza para comentarios de m as de una l nea. // texto. El texto desde // hasta el nal de l nea es ignorado. Se utiliza para comentarios de una sola l nea. /** documentaci on */. El texto comprendido entre /** y */ puede ser procesado por otra herramienta para preparar documentaci on de la siguiente declaraci on de clase, constructor, interfase, m etodo o campo.

OPERADORES
Existen operadores unarios y binarios que requieren uno o dos operandos, respectivamente. Los operadores unarios pueden aparecer antes o despu es del operando, aunque, en ese caso, la acci on que realizan puede ser diferente. x++; ++y; Los operadores binarios siempre aparecen entre los dos operandos: 5*6; a+b; Todo operador devuelve siempre un valor. Dicho valor y su tipo dependen del operador y del tipo de los operandos. Los operadores pueden clasicarse en las siguientes categor as: aritm eticos relacionales y condicionales bit-a-bit y l ogicos de asignaci on

Operadores aritm eticos


Operador + * / % Operadores Binarios Operaci on Descripci on a + b Adici on a - b Diferencia a * b Producto a / b Divisi on a % b resto de dividir a entre b Table 2: Operadores binarios.

El operador % s olo act ua con enteros. La divisi on de enteros da como resultado un entero: 31/9=3 Cuando un operador tiene operandos de diferente tipo, estos se convierten a un tipo com un siguiendo las reglas: la categor a de los tipos, de mayor a menor, es la siguiente: double, float, long, int, short,char. en cualquier operaci on en la que aparezcan operandos de tipos diferentes, se eleva la categor a del que la tenga menor. en una sentencia de asignaci on, el resultado nal se convierte al tipo de la variable a la que son asignados.

Operador +y++ --

Operadores Unarios Operaci on Descripci on Fijan el signo del operando +a y -a ++x Suma 1 a x antes de usarla x++ Suma 1 a x despu es de usarla --x Resta 1 a x antes de usarla x-Resta 1 a x despu es de usarla Table 3: Lista de operadores unarios

Ejemplos: int i=7; 4 * i++; i+2; Las dos u ltimas sentencias dan como resultado 4*7=28 y 8+2=10. int i=7; 4 * ++i; i+2; En este caso los resultados son 4*8=32 y 8+2=10.

Operadores relacionales y condicionales


Los operadores relacionales comparan dos valores y determinan la relaci on que existe entre ellos. Los operadores condicionales se utilizan para efectuar operaciones de tipo l ogico.

Operador > >= < <= == !=

Operadores Relacionales Empleo Descripci on true si a es mayor que b, a > b false en caso contrario. true si a es mayor o igual que b, a >= b false en caso contrario. true si a es menor que b, a < b false en caso contrario. true si a es menor o igual que b, a <= b false en caso contrario. true si a y b son iguales, a == b false en caso contrario. true si a y b son diferentes, a != b false en caso contrario.

Table 4: Lista de operadores relacionales.

Operadores Condicionales Operador Empleo Descripci on true si a y b son true, && a && b false en caso contrario. false si a y b son false, || a || b true en caso contrario. false si a es true y ! !a true si a es false Table 5: Lista de operadores condicionales.

Operadores bit-a-bit
Son operadores especiales que trabajan con los bits de una variable o de un n umero.
Operador >> << >>> & | ^ ~ Operadores Bit-a-Bit Empleo Descripci on Desp.b pos. a la dcha los bits de a a >> b Desp.b pos. a la izqu. los bits de a a << b Desp.b pos. a la dcha los bits de a a >>> b y completa los bits vacantes con 0 Es la funci on y. a & b Es la funci on o. a | b Es la funci on o exclusivo. a ^ b Es el complementario. ~a Table 6: Lista de operadores bit-a-bit.

El operador & act ua sobre cada par paralelo de bits, teniendo en cuenta que dados dos bits a y b se cumple: a 0 0 1 1 b a&b 0 0 1 0 0 0 1 1

An alogamente, para el operador | se tiene: a 0 0 1 1 b a|b 0 0 1 1 0 1 1 1

El operador ^ act ua de manera que si dos bits son diferentes, el resultado es 1; en caso contrario es 0: a 0 0 1 1 b a^b 0 0 1 1 0 1 1 0

El operador ~ invierte el valor de cada bit: si un bit es 1, el resultado es 0 y viceversa.

Operadores de asignaci on
Operadores de Asignaci on Operador Empleo Descripci on += a += b a = a + b -= a -= b a = a - b *= a *= b a = a * b /= a /= b a = a / b %= a %= b a = a % b &= a &= b a = a & b |= a |= b a = a | b ^= a ^= b a = a ^ b <<= a <<= b a = a <<b+ >>= a >>= b a = a >> b >>>= a >>>= b a = a >>> b Table 7: Lista de operadores de asignaci on.

El operador = asigna a la variable de la izquierda el valor que toma la expresi on de la derecha: float i = 3.5; Adem as: n = n*5; es equivalente a: n *= 5;

El operador cast
A veces se necesita almacenar valores de un tipo en variables de tipo diferente. Como Java no permite almacenar a cada variable mas que valores de su tipo, es necesario transformarlos previamente. Para ello, se recurre al operador cast, que transforma un tipo de dato en otro compatible, tal como se ve en el siguiente ejemplo: float a; int b; b = (int) a; int a; float b=1.6,c=1.7; a=b+c \\Devuelve 3 a=(int)b+(int)c \\Devuelve 2

MATRICES
Consid erense los 100 primeros m ultiplos de 2. Estos podr an almacenarse as : int int int ... int m1 = 2; m2 = 4; m3 = 6; m100 = 200;

Para ello, se dispone de las matrices (arrays), cuya declaraci on se hace como sigue: int mult[] int[] mult; mult = new int[100]; int mult[]=new int[100]; A partir de ese instante ya se pueden dar valores a todos los elementos de la matriz: for(int i=0;i<mult.length;i++) { mult[i] = 2*(i+1); } Para acceder al elemento i- esimo de la matriz, basta con escribir: mult[i], teniendo en cuenta que los ndices de la matriz comienzan a numerarse en 0.

EJEMPLO
public class Multiplos{ public static void main(String args[]){ int mult[]; mult=new int[100]; for(int i=0;i<mult.length;i++){ mult[i]=2*(i+1); System.out.println(mult[i]); } } }

Los elementos de una matriz son tratados como cualquier variable y pueden ser de cualquier tipo, incluso de tipo referencial como objetos u otras matrices. Todos sus elementos deben ser del mismo tipo. Por ejemplo: String a[] = new String[20]; Otra forma de crear arrays: String vocales[] = {"a","e","i","o","u"}; float numeros[] = {3.5,-7,4.79}; Java no soporta arrays multidimensionales, pero se puede crear un array de arrays.

CADENAS DE CARACTERES
Se denomina cadena de caracteres a una secuencia o conjunto ordenado de ellos. Toda cadena de caracteres se implementa mediante la clase String. String a[] = new String[20]; Otra forma: "Hola" Tambi en se pueden unir dos cadenas de caracteres mediante el operador de concatenaci on +. Por ejemplo: "La ecuacion tiene " + n + " soluciones."

EXPRESIONES
Toda expresi on es una combinaci on de variables, operadores y llamadas a m etodos, que calculen un valor. Las expresiones se utilizan para calcular y asignar valores a variables y para controlar la ejecuci on de un programa. Realizan las operaciones indicadas por sus elementos y devuelven alg un valor. Existen dos tipos de expresiones: Num ericas: que toman valores num ericos. Booleanas: que s olo toman los valores true o false.

Expresiones num ericas


Cualquier variable que represente un n umero es una expresi on num erica. int i i+10 --n; Toda asignaci on es tambi en una expresi on: a = 100 b* = 2

Expresiones booleanas
S olo poseen los valores true o false. n != m a < b En una expresi on es importante el orden en que se aplican los operadores. No es lo mismo 5 * 3 + 4 que 5 * (3 + 4)

. [] () ++ -- ! ~ instanceof new (type) * / % + << >> >>> < > == != & ^ | && || ? : = += -= *= /= %= ^= &= |= <<= >>= >>>= Table 8: Orden de preferencia de los operadores.

SENTENCIAS Y BLOQUES
Un programa no es m as que un conjunto de sentencias ordenadas. Una sentencia es una instrucci on completa para el compilador, que acaba en un punto y coma. Una expresi on como a = 100 o a < b se convierte en una sentencia cuando va seguida de un punto y coma: a = 100; a < b; Una sentencia indica una acci on. La expresi on 2+2; indica al compilador que realice esa operaci on pero no lo que debe hacer con el resultado. Por el contrario, la sentencia a = 2+2;

ordena al compilador que almacene el resultado en la variable a. int i=1; import java.awt.Font; System.out.println("Hola\n"); m.var=true;

Veamos cuatro clases de sentencias: Sentencias de declaraci on: establecen los nombres y el tipo de variables. boolean a; Sentencias de asignaci on: asignan valores a las variables. a=true; Sentencias de funci on: llaman a funciones para realizar una determinada tarea. objeto.suMetodo(); Sentencias estructuradas o de control de ujo: while, if-else, switch, etc., que se analizan en la secci on siguiente. Un bloque es un conjunto de dos o m as sentencias agrupadas y encerradas entre llaves, no existiendo punto y coma tras la llave de cierre. for(i=0;i<100;i++) { mult[i] = 2*(i+1); System.out.println("Elemento i"+mult[i]); } Dentro de un bloque se pueden declarar variables locales que dejar an de existir cuando el bloque termine su ejecuci on.

CONTROL DE FLUJO
Puede determinarse el orden de ejecuci on de las sentencias seg un convenga. Para ello nos servimos de las sentencias estructuradas o de control de ujo.

Ciclo while
while(expresion) {sentencias} Se ejecuta el bloque {sentencias} mientras el valor de la expresi on es true. El ciclo se repite hasta que el valor de expresion toma el valor false. Entonces, el compilador sale del ciclo.

Ciclo for
Act ua hasta un cierto l mite impuesto por el programador. Su sintaxis es la siguiente: for(iniciacion;limite;incremento) {sentencias} El ciclo for es equivalente a: iniciacion while(limite) { {sentencias} incremento } iniciacion e incremento suelen ser asignaciones o llamadas a una funci on, que en el caso de ser m as de una, se separan por comas, y limite, una expresi on relacional. La expresi on iniciacion se ejecuta al comienzo del bucle. La expresi on limite indica cu ando se ejecuta el bucle y se eval ua al comienzo de cada iteraci on, de manera que cuando su valor es true se ejecuta el bloque {sentencia} y si es false, el ciclo for concluye. Las sentencias del bloque sentencias se ejecutan en cada ciclo. Las sentencias del bloque incremento se ejecutan al nal de cada iteraci on o ciclo.

El ciclo for es frecuente en la iniciaci on de los elementos de un matriz: int mult[]; mult = new int[100]; for(int i=0;i<100;i++) { mult[i] = 2*(i+1); }

Ciclo do-while
do{ {sentencias} }while({expresion}); Mientras en los ciclos while y for, las condiciones de t ermino se eval uan al principio de cada iteraci on, en el ciclo do-while se comprueban al nal, despu es de cada repetici on del ciclo, por lo que el bloque {sentencias} se ejecuta siempre, al menos una vez. As , primero se ejecutan las sentencias del bloque sentencias y despu es se eval ua expresion. Si es verdadera, se vuelve a ejecutar el bloque sentencias, y as sucesivamente. Cuando expresion toma el valor false se acaba el ciclo. El bloque while: int a = 1; while ( a != 15 ) { a = a + 1; } equivale al bloque con do-while: int a = 1; do { a = a + 1; } while (a != 14);

Sentencia if-else
Se dene primero la sentencia if, que tiene el formato: if(expresion) {sentencias} Si expresion es true, se ejecuta {sentencias}. Si es false, no se ejecuta {sentencias}. Una alternativa m as potente es la sentencia if-else: if(expresion) {sentencias1} else {sentencias2} Si expresion es true, se ejecuta {sentencias1}; en caso contrario, se pasa a ejecutar {sentencias2}. if (a < b) { a = b * 2; System.out.println("El resultado es "+a); } if (a < a = b } else a = b a++; } b) { * 2; { + 5;

Sentencia else-if
La sentencia else-if ampl a el n umero de opciones. if(expresion1) {sentencias1} else if(expresion2) {sentencias2} ... else {sentenciasN} Las expresiones se eval uan en orden; si alguna es cierta, se ejecuta la sentencia o bloque asociado a ella, y se concluye la ejecuci on de la sentencia else-if. S olo se ejecuta el u ltimo else en el caso de que todas las expresiones sean falsas. int b = 10; int a; if(a > 1) { a = b * 2; } else if(a < 2) { a = b + 5; b++; } else if(a != 3) { a += b; } else { a = b ^ 2;} Pudiera ocurrir que fueran ciertas dos o m as expresiones. En este caso, se ejecutar an s olo las sentencias correspondientes a la primera de ellas y se saldr a del bloque else-if.

Sentencia switch
Se dispone de varias opciones derivadas de la evaluaci on de una u nica expresi on. La sintaxis es la siguiente: switch(expresion) { case {expresion1_constante1}: {sentencias1} case {expresion2_constante2}: {sentencias2} ... case {expresionN_constanteN}: {sentenciasN} default {sentencias} Cada case lleva una o m as constantes enteras o expresiones constantes enteras. Si un case coincide con el valor de expresion, la ejecuci on comienza ah . Todas las expresiones de los case deben ser diferentes. Si ninguna de ellas coincide con expresion, se ejecutan las sentencias correspondientes a default. El default es optativo; si no est a y ninguno de los casos coincide, no se ejecuta ninguna acci on.

int b = 10; int a; if (a == 1){ a = b * 2; } else if (a == 2){ a = b + 5; b++;} else if (a == 3){ a += b; } else { a = b ^ 2; } puede reescribirse de la forma siguiente: int b = 10; int a; switch (a) { case 1: a = b * 2;break; case 2: a = b + 5; b++;break; case 3: a+ = b;break; default: a = b ^ 2;break; }

Sentencias para manejar excepciones


Cuando se produce un error, el m etodo puede lanzar un mensaje de excepci on para avisar del mismo. Esto se consigue con la sentencia throw. El m etodo tambi en puede usar las sentencias try, catch y finally para manejar la excepci on.

Sentencias de bifurcaci on
La sentencia break en un ciclo obliga al programa a abandonar el ciclo y continuar con la ejecuci on de las sentencias que siguen. La sentencia continue se usa dentro de un ciclo para iniciar la siguiente iteraci on del ciclo que la contiene. De esta manera se evita ejecutar las sentencias del ciclo siguientes a continue. Por ejemplo, con las sentencias: for (i = 0; i < n; i++) { if(a[i] < 0) continue; ... } se ignoran los valores negativos de la matriz a. La sentencia return naliza la ejecuci on de la funci on que la contiene y devuelve el control a la sentencia siguiente de la funci on de llamada. Adem as, puede devolver un valor. En este u ltimo caso, la sintaxis es: return expresion;

break y continue pueden tener una etiqueta opcional que indica a donde dirigirse tras la interrupci on. Las etiquetas permiten salir de ciclos anidados o continuar fuera del ciclo actual. fuera: for(int i=0;i<10;i++){ while(x<50){ if(i*x==400) break fuera; ... } ... }

También podría gustarte