Co je to statický blok?


Nejlepší odpověď

statický blok {}

  1. statické bloky se používají k inicializaci statických dat ve třídě, vytvářejí statické prostředky.
  2. statické bloky se provádějí pouze jednou, jakmile je třída načtena do paměti.
  3. statické bloky jsou spouštěny před metodou main () zavaděčem JavaClass.
  4. 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 .
  5. static {}, provádí se pokaždé, když se načte třída.
  6. Nemůžeme psát statické bloky uvnitř statické metody a nestatické metody (statické bloky jsou psány samostatně )
  7. Uvnitř statického bloku mohou být přístupné pouze statické proměnné.
  8. Můžeme volat statickou metodu uvnitř statického bloku.
  9. Nemůžeme uvnitř vytvářet žádné metody statický blok.
  10. Nestatické proměnné a nestatické metody nemohou být přístupné uvnitř a statický blok.
  11. 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

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *