¿Puedo definir múltiples bloques estáticos?¿Puedo definir múltiples bloques estáticos?
Si es posible, ¿por qué debería definir muliple bloques estáticos?
¿Puedo definir múltiples bloques estáticos?¿Puedo definir múltiples bloques estáticos?
Si es posible, ¿por qué debería definir muliple bloques estáticos?
sí, también puede crear varios bloques de inicialización.
Esto le permite colocar el código con la cosa inicializada.
private static final Map<String, String> map;
static {
// complex code to initialise map
}
private static final DbConnection conn;
static {
// handle any exceptions and initialise conn
}
Puede definir múltiples bloques estáticos. Pero no creo que sea realmente necesario. Pero si define, se ejecutarán secuencialmente. me refiero a que el bloque estático definido primero se ejecutará primero y el próximo bloque se ejecutará a continuación.
Sí. Es posible definir múltiples bloques estáticos en una clase java. Ayuda en la modularización de su código de inicialización, lo que a su vez ayuda a una mejor comprensión y naturaleza legible del código (como se menciona en peter).
public class TryInitialisation {
static int[] values = new int[10];
static{
System.out.println("running initialisation block");
for (int i=0; i< values.length; i++)
values[i] = (int) (100.0 * i);
}
static{
System.out.println("running initialisation block");
for (int i=0; i< values.length; i++)
values[i] = (int) (200.0 * i);
}
static{
System.out.println("running initialisation block");
for (int i=0; i< values.length; i++)
values[i] = (int) (300.0 * i);
}
void listValues(){
for (int i=0; i<values.length; i++)
System.out.println(" " + values[i]);
}
public static void main(String[] args) {
TryInitialisation example = new TryInitialisation();
example.listValues();
example = new TryInitialisation(); // referencing a new object of same type
example.listValues();
}
}
Aquí está la salida:
running initialisation block
running initialisation block
running initialisation block
0
300
600
900
1200
1500
1800
2100
2400
2700
0
300
600
900
1200
1500
1800
2100
2400
2700
Para su primera pregunta, ¿qué sucede cuando se intenta? – beny23
suena como una pregunta de tarea ... es su trabajo demostrar rigor al hacer una pregunta (s). – jamesTheProgrammer