Statické může být:
- Statické proměnné
- Statické metody
- Statické bloky kódu.
Podívejme se nejprve na statické proměnné a statické metody.
Co je statická proměnná v Javě?
Statická proměnná v Javě 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 nikoli do objektu (instance). Statické proměnné jsou inicializovány pouze jednou, na začátku provádění. Tyto proměnné budou nejprve inicializovány, před inicializací libovolných proměnných instance.
- Jedna kopie, kterou mají sdílet všechny instance třídy
- Statická proměnná je přístupná přímo podle názvu třídy a nepotřebuje žádný objekt
Syntaxe:
< class-name>.
Co je statická metoda v Javě?
Statická metoda v Javě je metoda, která patří do třídy a nikoli do objektu. Statická metoda může přistupovat pouze ke statickým datům. Jedná se o metodu, která patří do třídy a nikoli do objektu (instance). Statická metoda může přistupovat pouze ke statickým datům. Nemůže přistupovat k nestatickým datům (proměnné instance).
- Statická metoda může volat pouze jiné statické metody a nemůže z ní volat nestatickou metodu.
- Statická metoda je přístupná přímo podle názvu třídy a nepotřebuje žádný objekt
- Statická metoda stejně nemůže odkazovat na klíčová slova „toto“ nebo „super“
Syntaxe:
< class-name>.
Poznámka: hlavní metoda je statická, protože před spuštěním instance musí být přístupná pro spuštění aplikace.
Naučme se nuance statických klíčových slov provedením několika cvičení!
Příklad: Jak volat statické proměnné a metody
Krok 1) Zkopírujte následující kód do editoru
ukázka veřejné třídy {public static void main (String args []) {Student s1 = nový Student ();s1.showData ();Student s2 = nový Student ();s2.showData ();//Student.b++;//s1.showData ();}}třída Student {int a; // inicializováno na nulustatický int b; // inicializováno na nulu pouze při načtení třídy ne pro každý vytvořený objekt.Student(){// Konstruktor zvyšující statickou proměnnou bb ++;}public void showData () {System.out.println ("Hodnota a =" + a);System.out.println ("Hodnota b =" + b);}// public static void increment () {// a ++;//}}
Krok 2) Uložit a zkompilovat 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 se vytvářejí referenční proměnné a objekty a jak ke statickým proměnným přistupují různé instance.
Krok 4) Je možné přistupovat ke statické proměnné zvenčí třídy pomocí syntaxe ClassName.Variable_Name . Odkomentujte řádek č. 7 a 8. Uložit, zkompilovat a spustit. Sledujte výstup.
Value of a = 0Value of b = 1Value of a = 0Value of b = 2Value of a = 0Value of b = 3Krok 5) Odkomentujte řádek 25, 26 a 27. 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é získat přístup k proměnné instance „ a “ z metody statické třídy Java „ přírůstek “.
Co je statický blok v Javě?
Statický blok je blok příkazu uvnitř třídy Java, který bude proveden, když je třída nejprve načten do JVM. Statický blok přispívá k inicializaci statické datové členy , stejně jako konstruktérů pomoc inicializovat členy instance.
class Test{static {//Code goes here}}
Následující program je příkladem java statického bloku.
Příklad: Jak přistupovat ke statickému bloku
ukázka veřejné třídy {statický int a;statický int b;statický {a = 10;b = 20;}public static void main (String args []) {System.out.println ("Hodnota a =" + a);System.out.println ("Hodnota b =" + b);}}
získáte následující výstup programu.
Value of a = 10Value of b = 20