Hola Mundo.

Partiremos del ejemplo "Hello, World!" es un clásico de todos los lenguajes y Java no debe ser una excepción para ir viendo minuciosamente todos los detalles sin que se nos escape ninguno.

El típico ejemplo Hola Mundo.

public class HolaMundo {

        public static void main (String args[]) {      /* 2 */
                System.out.println( "¡Hola, Mundo!" );   /* 3 */
        }

}

El código lo encontraremos en el directorio:

/Curso Java/Java/ejemplos/HolaMundo/

Todo programa Java es al menos una clase (todo en Java son clases, no existe nada fuera de clases; es decir, no existe el concepto de "variable global" o "función global" como en los lenguajes imperativos convencionales).

En principio, cada clase Java se escribe en un fichero cuyo nombre es el mismo de la clase con la extensión .java; el cuerpo del programa será el método main.

Cuando compilamos esta clase con Kawa, realmente lo que usamos es el comando del JDK javac (en el directorio bin), se genera un fichero con el mismo nombre de la clase y extensión .class (HolaMundo.class), que será el código objeto que podrá ejecutar el intérprete de JavaVM (comando de la JDK java), mostrando el mensaje "¡Hola, Mundo!" en pantalla.

El método main.

Si intentamos ejecutar una clase, el intérprete de Java busca un método main en ella. Si no existe se produce un error. Por ello, toda clase que se quiera poder ejecutar directamente desde línea de comandos, debe incluir un método main (téngase en cuenta que no toda clase tiene por qué tener este método, de hecho la mayoría de las clases serán sólo utilitarias para otras, en cuyo caso el método main no tendrá sentido), además cuando veamos los servlets o JSPs ya veremos como no es necesario ningún método main.

El sistema pasa a main un vector de strings con los parámetros de línea que se hayan pasado al programa (si hay alguno).

La cabecera del método main.

La línea /*2*/ indica, como en C, la cabecera, la especificación de la función (main) a la cual se llamará, indicando que no devuelve ningún valor (void) y la lista de parámetros contenida en un array de Strings (String args[]).

Las palabras clave que figuran antes del tipo devuelto son los especificadores de método:

public indica que el método es público (lógico, ¿no?). Esto es, puede ser llamado por cualquiera.

static nos va a dar más problemas de entendimiento. Retomemos la pregunta anterior ¿sobre qué objeto llama automáticamente el sistema a main?. La respuesta es: ¡sobre ninguno! No hay ningún objeto creado cuando el programa se arranca.

Bien, esto no sería ningún problema en un lenguaje normal. Se llama a un procedimiento global main y este se ejecuta. Pero ya sabemos que en Java no hay procedimientos globales, todos pertenecen a una clase.

Bueno, pues aquí tenemos una gran afirmación a entender. A veces hay procesos que se realizan sobre la clase misma, no sobre un objeto o instancia de esa clase. Esto es lo que quiere decir la palabra clave static cuando se aplica a un método. Es lo que se llama método de clase.

La clase java.lang.System.

La salida a pantalla se hace con el método System.out.println, que se desarrolla sobre una clase especial llamada System, en el paquete java.lang (que no hace falta que se indique, ya que es el único paquete que siempre se incluye en toda clase Java). Si no se incluyese recordad que al principio de esta clase habría que poner import java.lang.*;

La clase System contiene variables y métodos de clase útiles, como entradas y salidas estándar. Las variables son:

Todas estas variables son streams (flujos de datos), hablaremos más en detalle de éstos en otras secciones. Además hay algunos métodos útiles, como: Algunos métodos de PrintStream Veamos todo esto mediante las APIs que serán las que nos guíen siempre en nuestra construcción de aplicaciones en Java:

java.lang.System

Un poquito sobre String.

En Java, para tratar las cadenas de caracteres tenemos String, que es una clase definida en el paquete java.lang que permite almacenar cadenas de caracteres. Tiene algunas posibilidades de gestión de strings, como calcular substrings, convertir mayúsculas y minúsculas, etc.

El string es una clase especial en Java. Permite el uso del operador + que está sobrecargado como concatenación de strings. No sólo eso, sino que si se concatena un string con cualquier otro valor, éste se convierte a string.
 

Seguir