Statická proměnná v Java

Statika může být:

  1. Statické proměnné
  2. Statické metody
  3. Statické bloky kódu.

Podívejme se nejprve na statické proměnné a statické metody.

V čem je statická proměnná Java?

Statická proměnná in Java je proměnná, která patří do třídy a inicializuje se pouze jednou na začátku provádění. Je to proměnná, která patří do třídy a ne do objektu (instance). Statické proměnné jsou inicializovány pouze jednou, na začátku provádění. Tyto proměnné budou inicializovány jako první, před inicializací jakýchkoli instančních proměnných.

  • Jediná kopie, kterou budou sdílet všechny instance třídy
  • Ke statické proměnné lze přistupovat přímo pomocí názvu třídy a nepotřebuje žádný objekt

Syntaxe:

<class-name>.<variable-name>

V čem je statická metoda Java?

Statická metoda v Java je metoda, která patří do třídy a ne do objektu. Statická metoda může přistupovat pouze ke statickým datům. Je to metoda, která patří do třídy a ne do objektu (instance). Statická metoda může přistupovat pouze ke statickým datům. Nemůže přistupovat k nestatickým datům (instance proměnné).

  • Statická metoda může volat pouze jiné statické metody a nemůže z ní volat nestatickou metodu.
  • Ke statické metodě lze přistupovat přímo pomocí názvu třídy a nepotřebuje žádný objekt
  • Statická metoda nemůže v žádném případě odkazovat na klíčová slova „toto“ nebo „super“.

Syntaxe:

<class-name>.<method-name>

Poznámka: hlavní metoda je statická, protože musí být přístupná pro spuštění aplikace, než dojde k jakékoli konkretizaci.

Pojďme se naučit nuance statických klíčových slov pomocí cvičení!

Příklad: Jak volat statické proměnné a metody

Krok 1) Zkopírujte následující kód do editoru

public class Demo{
   public static void main(String args[]){
     Student s1 = new Student();
     s1.showData();
     Student s2 = new Student();
     s2.showData();
     //Student.b++;
     //s1.showData();
  }
}

class Student {
int a; //initialized to zero
static int b; //initialized to zero only when class is loaded not for each object created.

  Student(){
   //Constructor incrementing static variable b
   b++;
  }

   public void showData(){
      System.out.println("Value of a = "+a);
      System.out.println("Value of b = "+b);
   }
//public static void increment(){
//a++;
//}

}

Krok 2) Uložte a zkompilujte kód. Spusťte kód jako, java demo.

Krok 3) Očekávaný výstup je uveden níže


Java Statické metody a proměnné

Následující diagram ukazuje, jak jsou vytvářeny referenční proměnné a objekty a jak přistupují různé instance ke statickým proměnným.


Java Statické metody a proměnné

Krok 4) Ke statické proměnné je možné přistupovat z vnějšku třídy pomocí syntaxe Název_třídy.Název_proměnné. Odkomentujte řádek č. 7 a 8 . Uložit, zkompilovat a spustit. Sledujte výstup.

Value of a = 0
Value of b = 1
Value of a = 0
Value of b = 2
Value of a = 0
Value of b = 3

Krok 5) Odkomentovat řádek 25,26, 27 a XNUMX . Uložit, zkompilovat a spustit.

	 error: non-static variable a cannot be referenced from a static context a++; 

Krok 6) Chyba = ? Je to proto, že není možné přistupovat k proměnné instance “a“ z metody statické třídy Java “přírůstek".

V čem je statický blok Java?

Jedno statický blok je blok příkazů uvnitř a Java třída, která bude provedena při prvním načtení třídy do JVM. statický blok pomáhá inicializovat statické datové členy, stejně jako konstruktory pomáhají inicializovat členy instance.

class Test{
 static {
 //Code goes here
 }
}

Následující program je příkladem statického bloku java.

Příklad: Jak získat přístup ke statickému bloku

public class Demo {
 static int a;
 static int b;
 static {
    a = 10;
    b = 20;
 }
 public static void main(String args[]) {

  System.out.println("Value of a = " + a);
  System.out.println("Value of b = " + b);

 	}
}

získáte následující výstup programu.

Value of a = 10
Value of b = 20

Shrňte tento příspěvek takto: