Co to jest blok statyczny?


Najlepsza odpowiedź

blok statyczny {}

  1. bloki statyczne służą do inicjalizacji statycznych danych w klasie, tworzy statyczne zasoby.
  2. bloki statyczne są wykonywane tylko raz, gdy tylko klasa zostanie załadowana do pamięci.
  3. bloki statyczne są wykonywane przed metodą main () przez program ładujący JavaClass.
  4. Klasa może mieć wiele bloków statycznych, które będą wykonywane w tej samej kolejności, w jakiej zostały zapisane w programie .
  5. statyczny {}, jest wykonywany za każdym razem, gdy klasa się ładuje.
  6. Nie możemy pisać bloków statycznych wewnątrz metody statycznej i metody niestatycznej (bloki statyczne są zapisywane osobno )
  7. Tylko zmienne statyczne mogą być dostępne wewnątrz bloku statycznego.
  8. Możemy wywołać metodę statyczną wewnątrz bloku statycznego.
  9. Nie możemy tworzyć żadnych metod wewnątrz blok statyczny.
  10. Zmienne niestatyczne i metody niestatyczne nie mogą być dostępne w pliku blok statyczny.
  11. Próba uzyskania dostępu do zmiennych lub metod niestatycznych wewnątrz bloku statycznego powoduje błąd czasu kompilacji,

Nie można utworzyć statycznego odwołania do niestatycznej metody wow () z typu staticblock

Rozważ poniższy przykład statycznego bloku.

  • W klasie znajduje się jeden blok statyczny {}.
  • Istnieją dwie zadeklarowane zmienne statyczne „ss, j”, w których można uzyskać do nich dostęp wewnątrz metody statycznej oraz w bloku statycznym.
  • Metoda statyczna disp () jest zapisywana i drukuje zmienną statyczną wewnątrz niej.
  • Ta metoda jest wywoływana wewnątrz bloku statycznego {}
  • zmienne statyczne i metody statyczne mogą być dostępne tylko wewnątrz bloku statycznego

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) {

}

}

sprawdź wyjście

blok statyczny jest wywoływany z wartością8

uruchamiany w bloku statycznym przed metodą główną

Wartość wewnątrz metody statycznej to 23

Odpowiedź

Bloki statyczne są również nazywane Statyczne bloki inicjalizacyjne , klasa może mieć dowolną liczbę bloków statycznych i mogą pojawić się w dowolnym miejscu w klasie java.

Ten blok jest wykonywany, gdy klasa jest lo umieszczone w pamięci. Środowisko wykonawcze Java gwarantuje, że statyczne bloki inicjalizacyjne są wywoływane w kolejności, w jakiej występują w kodzie źródłowym.

Przykład:

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");

}

}

Wynik:

Static block - 1

Static block - 2

Static block - 3

Main Method

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *