lunes, octubre 14, 2013

Diferencia entre bloques estaticos y contructores en Java




 Static Block diferencia Instances

public class Counter {
private static int count;
static {
count = 1;
}
public Counter() {
count++;
}
public static void printCount() {
System.out.println("El numero de instancia creadas hata ahora es : " + count);
}
public static void main(String []args) {
Counter anInstance = new Counter();
Counter.printCount();
Counter anotherInstance = new Counter();
Counter.printCount();
}

}



Dado el siguiente codigo tratare de explicar de manera breve como funcina esto, pues bien, todos sabemos que cuando tenemos una clase y de esta creamos un objeto y después instanciamos este objeto podemos inicializar todas aquellas variables que nosotros queramos tal como pasa en el ejemplo:

public Counter() {
count++;
}



Aquí el constructor le esta indicando que la variable count se le sume uno, pero esto ocurrió solo hasta que nosotros realizamos esto:
 Counter anInstance = new Counter();
Es decir solo se incremento hasta que instanciamos la variable

Ahora bien el bloque estático:

 static {
count = 1;
}

sera ejecutado por la JVM cuando la clase cargue a la memoria, por lo que no sera necesario que le indiquemos que se ejecute.


Eso es todo, espero alla sido de utilidad este tip.


No hay comentarios.:

Publicar un comentario