Creando nuestra primera clase
Vamos a empezar pronto con las cosas prácticas creando nuestra primera clase y viendo así
cómo se programa, compila y ejecuta el código Java. En Java, todo lo que hagamos será
programar clases. Cualquier programa será una clase que a su vez podrá hacer uso de una,
dos, tres o más clases. Así pues, escribiremos el siguiente código:
HolaMundo.java
public class HolaMundo {
public static void main(String[] args) {
System.out.println("Hola, mundo");
}
}
Este ejemplo expone varios elementos del lenguaje Java a los que tendremos que prestar
atención. Pero lo primero es editar este fichero y grabarlo con el nombre de
MiPrimerPrograma.java. Si tenemos bien instalado el JDK, no tenemos más que compilarlo
escribiendo:
javac HolaMundo.java
Y ejecutarlo:
java HolaMundo
Una cosa a recordar es que ejecutamos "HolaMundo", no "HolaMundo.class". El
intérprete añade la extensión.
Veremos que nos muestra el mensaje "Hola, mundo" en la pantalla al ejecutarlo, tal y como
cabe esperar de un primer programa en cualquier lenguaje. Vamos a analizarlo línea a línea:
public class HolaMundo {
}
Con esto estamos indicando que todo lo encerrado entre llaves pertenece al código de la
clase HolaMundo. En Java, el ámbito de algo está indicado por las llaves. ¿Y qué es el
ámbito? El ámbito es lo que determina tanto la visibilidad de la definición de un nombre. Por
lo tanto, todo nombre definido entre las llaves arriba indicadas (ya corresponda a una
propiedad, variable o método) será visible dentro de esas mismas llaves y dentro de sus
llaves "hijas". Por ejemplo:
{
int x1;
{
int x2;
}
{
int x3;
}
}
En este ejemplo, x1 sería visible en todos los ámbitos, mientras que x2 y x3 sólo se verían en
los ámbitos en que se han definido.
Hay que resaltar que hemos especificado que la clase HolaMundo sea pública (public). Con
esto cambiamos la accesibilidad de la clase. Podemos hacerla pública, de modo que todo el
mundo pueda acceder a ella, sus propiedades y métodos. Podemos hacerla privada
(private), que impide que nadie pueda acceder a la misma o protegida (protected), de
modo que nadie excepto sus clases heredadas (ya veremos que significa esto) tienen permiso
de acceso. Por defecto una clase permite el acceso sólo a miembros de su mismo paquete
(package), que es el equivalente en Java a las librerías.
En este caso, podríamos haber dejado el valor de accesibilidad por defecto, pero conviene
irse acostumbrando a hacer bien las cosas. Dado que en realidad queremos que la clase
HolaMundo sea accesible al mundo exterior la haremos pública. Esto, sin embargo, tiene un
par de restricciones que hay que tener en cuenta:
- Sólo puede haber una clase pública por fichero.
- El fichero debe llamarse igual que dicha clase pública.
Continuemos examinando el código fuente:
public static void main(String[] args) {
}
Con esto estamos definiendo un método de la clase HolaMundo. Un método con varias
características especiales:
- Es público.
- Es estático. Esto significa que, por muchas instancias que creemos de la clase,
existirá un único miembro de este tipo en la memoria. De hecho éste existe aunque no
creemos instancias de la clase y, por tanto, se puede llamar.
- Como es un método (función) y no una propiedad (variable), debemos indicar el tipo
del valor de retorno. En este caso será void, es decir, ninguno.
- El método se llama main. Este nombre es un nombre especial, ya que es el que deberá
tener el método que se ejecute cuando se ejecute nuestra aplicación.
- Recibe como parámetro un vector de cadenas. Aunque en nuestro programa no lo
vamos a utilizar es necesario que así sea, pues este vector recibe los parámetros que
haya podido introducir el usuario al programa en la línea de comandos.
Por último, vamos a ver lo que realmente hace el programa:
System.out.println("Hola, mundo");
Llamamos a una función del sistema. Entre las librerías que ofrece Java, existe una que se
incluye por defecto en todos los programas, es java.lang. Entre las clases disponibles en la
misma está la clase estática System, uno de cuyos miembros es out, uno de cuyos métodos
es println. Navegando entre la ayuda de Java podemos comprobar todo esto. Este método
recibe como parámetro una cadena que se encargará de escribir en pantalla.