Statická proměnná v Java
- Statické proměnné
- Statické metody
- 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
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.
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


