Nejlepší odpověď
statický blok {}
- statické bloky se používají k inicializaci statických dat ve třídě, vytvářejí statické prostředky.
- statické bloky se provádějí pouze jednou, jakmile je třída načtena do paměti.
- statické bloky jsou spouštěny před metodou main () zavaděčem JavaClass.
- Třída může mít více statických bloků, které se budou provádět ve stejném pořadí, v jakém byly zapsány do programu .
- static {}, provádí se pokaždé, když se načte třída.
- Nemůžeme psát statické bloky uvnitř statické metody a nestatické metody (statické bloky jsou psány samostatně )
- Uvnitř statického bloku mohou být přístupné pouze statické proměnné.
- Můžeme volat statickou metodu uvnitř statického bloku.
- Nemůžeme uvnitř vytvářet žádné metody statický blok.
- Nestatické proměnné a nestatické metody nemohou být přístupné uvnitř a statický blok.
- Pokud se pokusíte získat přístup k nestatickým proměnným nebo metodám uvnitř statického bloku, zobrazí se chyba kompilace,
Nelze vytvořit statický odkaz na nestatickou metodu wow () z typu staticblock
Zvažte níže uvedený příklad statického bloku.
- Ve třídě je jeden statický blok {}.
- Jsou deklarovány dvě statické proměnné „ss, j“, ve kterých jsou přístupné uvnitř statické metody a ve statickém bloku
- Statická metoda disp (), je zapsána a vytiskne uvnitř ní statickou proměnnou.
- Tato metoda se nazývá uvnitř statického bloku {}
- statické proměnné a statické metody lze přístupné pouze uvnitř statického bloku
public class staticblock {
static int ss=23; // initialize the static variable with value;
public static void disp() {
System.out.println("runnin static block before main method");
System.out.println("Value inside static method is "+ss);
}
static int j;
static // static block
{
j=8;
System.out.println("static block is invoked with the value"+j); // access the static variable inside static block
disp(); // calling the static method inside static block
}
public static void main(String[] args) {
}
}
zkontrolovat výstup
je vyvolán statický blok s hodnotou8
spustit statický blok před hlavní metodou
Hodnota uvnitř statické metody je 23
Odpověď
Statické bloky se také nazývají Statické inicializační bloky , třída může mít libovolný počet statických bloků a mohou se objevit kdekoli uvnitř třídy Java.
Tento blok se provede, když je třída lo aded v paměti. Běhový systém Java zaručuje, že jsou statické inicializační bloky volány v pořadí, v jakém se objevují ve zdrojovém kódu.
Příklad:
public class Solution{
static {
System.out.println("Static block - 1");
}
static {
System.out.println("Static block - 2");
}
public static void main(String[] args){
System.out.println("Main Method");
}
static {
System.out.println("Static block - 3");
}
}
Výstup:
Static block - 1
Static block - 2
Static block - 3
Main Method