sábado 06 de septiembre de 2008

El método main de Java

Una aplicación es un programa convencional que se invoca desde el intérprete de comandos. Este programa se carga directamente desde el disco y no de la red Internet.
Ahora veremos la aplicación más simple que se puede escribir en Java: el clásico "Hola Mundo''.
Crear un archivo llamado Hola1.java con:

// La aplicación ¡Hola Mundo!
public class Hola1 {
public static void main (String args[]) {
System.out.println("¡Hola Mundo!");
}
}

1. Compilar con: javac Hola1.java
2. Ejecutar con: java Hola1

Observaciones:
1.- La primera línea es un comentario. Todo lo que viene después de la secuencia // hasta el fin de línea es un comentario.
2.- Java también acepta comentarios "a la C'': /* ... */
3.- Luego viene la definición de una clase llamada Hola1:
public class Hola1 { ... }

En Java un programa es un conjunto de definiciones de clases que están dispuestas en uno o más archivos.

4.- Dentro de la clase Hola1 se define el método main:
public static void main (String args[]) { ... }

En una clase se definen uno o más métodos.

° La palabra reservada "public" significa que un método puede ser llamado desde otras clases, o que la clase puede ser usada por clases fuera de la jerarquía de la propia clase. Otros tipos de acceso son ”private” o ”protected”.

° La palabra reservada "static" indica que el método es un método de clase, asociado a la clase en vez de a instancias de la misma. El método main debe ser estático o "de clase".
los métodos estáticos o de clase (también denominados métodos compartidos) están asociados a una clase en particular.

° La palabra "void" indica que el método main no retorna ningún valor.

° La forma "(String args[])" es la definición de los argumentos que recibe el método main. En este caso se recibe un argumento. Por acuerdo se referencia como ”args”, aunque puede emplearse cualquier otro identificador. Los paréntesis [] indican que el argumentos es un arreglo y la palabra String es el tipo de los elementos del arreglo.

-> Por lo tanto main recibe como argumento un arreglo de strings que corresponden a los argumentos con que se invoca el programa.

5.- La instrucción System.out.println(...) despliega un string en la consola.

Java no posee una sintaxis abreviada para desplegar strings.
Consideraciones importantes:
El nombre del archivo (Hola1.java) siempre debe ser el nombre de la clase (Hola1) con la extensión ".java''.

Todas las aplicaciones deben definir el método main.
Al invocar el intérprete de java con java Hello1, se busca y se invoca un método main que textualmente haya sido definido con:
public static void main (String args[]) { ... }

No cambie el nombre de este procedimiento ni omita ninguno de sus atributos. Tampoco cambie el tipo de los argumentos o el valor retornado.

jueves 04 de septiembre de 2008

Arreglos Bidimensionales en Java

Un arreglo tipo tabla se define como un conjunto de datos del mismo tipo organizados en dos o mas columnas y uno o mas renglones.
Para procesar (recordar solo operaciones y comparaciones) internamente todos los elementos de la tabla se ocupan dos ciclos for(), uno externo para controlar renglón y uno interno para controlar columna.
Los elementos de la tabla se deberan simbolizar con el nombre de la tabla y 2 subindices, el primer subindice referencia al renglon y el siguiente subindice referencia la columna los dos dentro del mismo corchete.

La declaración de una tabla sera de acuerdo a los siguientes formatos:

1) tipodato nomtabla[][]= new tipodato[reng][col];
ejemplo:
int calif[][]=new int[3][4];
double ingresos[][]= new double[3][4];

2) Clasenumerica objetotabla[][]= new constructor[ren][col];
ejemplo;
Integer calif[][]= new Integer[2][3];
Double ingresos[][]=new Double[3][4];
Para capturar sus elementos, usaremos el procedimiento desarrollado con listas.
Para efectuar otros procesos tales como operaciones despliegue con todos los elementos de la tabla se deberan usar 2 ciclos un for externo para controlar renglon y un for interno para controlar columna.

Ejemplo:
static void visualizar(int b[][]){
int i,j;
System.out.println(“\n\t Matriz leida “);
for(i=0; i < b.length; i++){
for(j=0; j < b[i].length; j++)
System.out.print(b[i][j]+“ “);
System.out.println(“ “);
}
}
}

Mete datos a matriz
Renglón 0: Matriz leida
45 45 75 25 10 40
75 20 14 36 15 26
25 21 15 37 16 27
10
40

martes 02 de septiembre de 2008

Sentencia Continue en Java

Sirve para volver al principio del ciclo en cualquier momento, sin ejecutar las líneas que haya por debajo de la palabra continue. Esta instruccion, al ejecutarse en un ciclo while, for o do while evita las instrucciones restantes en el cuerpo del ciclo y procede con la siguiente iteración del mismo. En las instrucciones while y do while, el programa evalua la condición de continuación de ciclo inmediatamente después de que se ejecuta la instrucción continue. En una instrucción for se ejecuta la expresión de incremento y luego el programa evalua la condición de continuación del ciclo.

La sentencia de continue es de tipo de control de bucles. Dentro de la interacion en un bucle, de cualquiera de los tipos (while, do-while, for), el uso de esta sentencia rompe la interacion de dicho bucle. Provocando que se ejecute la siguiente interacion de dicho bucle, ignorando las sentencias posteriores a "continue".

for(int j = 0; j<10; j++){
sentencia 1;
sentencia 2;
sentencia 3;
continue;
sentencia 4;
}

Este bucle se ejecuta 10 veces, pero con la salvedad de que la sentencia 4 no se ejecuta ninguna vez. Es decir, se ejecutan las sentencias 1, 2 y 3 y cuando se llega a la sentencia de control continue se vuelve de nuevo a comprobar la condicion del for y en caso de cumplirse de nuevo a la sentencia 1 y así sucesivamente.

El continue se puede utilizar en el siguiente bloque:
OuterLoop: for (int i=0; i < 10; i++) {
InnerLoop: for (int j=0; j < 10: j++) {
System.out.println(i +” - ” + j);
if ( i == j ) continue OuterLoop;
}
}

Hay varias cosas para tener en cuenta con este código. Lo primero es la capacidad para etiquetar un bucle, para esto se coloca un ‘label’ separado por ‘:’ de la declaración del bucle, esto permite identificar varios bucles encadenados de tal manera que se pueda saltar hacia cualquiera de ellos con la palabra reservada ‘continue’.

La palabra reservada ‘continue’ solamente es valida dentro de una estructura de bucle, de ser escrita porque generara un error de compilación. Esta palabra reservada sirve para saltarse o parar la iteración actual del bucle pasando a donde se le indique en la etiqueta, si no se indica etiqueta se salta la iteración del bucle donde se encuentre.

Para saltarse el bucle completo es necesario recurrir a la palabra reservada ‘break’. Esta palabra reservada puede ser utilizada tanto en un bucle como en una estructura ’switch’ y tiene el mismo comportamiento dentro de los bucles que ‘continue’.