Inicializadores
Por motivos que se verán más adelante. Java todavía dispone de una tercera línea de actuación para
evitar que haya variables sin inicializar correctamente. Son los inicializadores. que pueden ser static
(para la clase) o de objeto.
3.5.6.1 Inicializadores static
Un inicializador static es un algo parecido a un método (un bloque {...} de código, sin nombre y
sin argumentos, precedido por la palabra static) que se llama automáticamente al crear la clase (al
utilizarla por primera vez).
También se diferencia del constructor en que no es llamado para cada
objeto, sino una sola vez para toda la clase.
Los tipos primitivos pueden inicializarse directamente con asignaciones en la clase o en el
constructor, pero para inicializar objetos o elementos más complicados es bueno utilizar un
inicializador (un bloque de código {...}). ya que permite gestionar excepciones3 con try...catch.
Los inicializadores static se crean dentro de la clase, como métodos sin nombre, sin
argumentos y sin valor de retomo, con tan sólo la palabra static y el código entre llaves {...}.
En una
clase pueden definirse varios inicializadores static. que se llamarán en el orden en que han sido
definidos.
Los inicializadores static se pueden utilizar para dar valor a las variables static. Además se
suelen utilizar para llamar a métodos nativos, esto es. a métodos escritos por ejemplo en C/C++
(llamando a los métodos System.load() o System.loadLibrary(). que leen las librerías nativas). Por
ejemplo:
static{
System.loadLibrary("MyNativeLibrary");
}
Inicializadores de objeto
A partir de Java 1.1 existen también
inicializadores de objeto, que no llevan la palabra static. Se utilizan para las clases anónimas, que por no tener nombre no pueden tener
constructor. En este caso, los inicializadores de objeto se llaman cada vez que se crea un objeto de
la clase anónima.
No hay comentarios:
Publicar un comentario