Junior
Co znamená klíčové slovo 'static' v Javě?
sobes.tech AI
Odpověď od AI
static v Javě se používá k deklaraci prvků, které patří ke třídě, nikoliv k konkrétnímu výřezu objektu.
Klíčové slovo může být použito na:
- Proměnné (pole):
- Kopie proměnné existuje pro celou třídu, bez ohledu na počet vytvořených výtisků.
- K přístupu lze použít název třídy (například
ClassName.staticVariable).
// Příklad statické proměnné public class MyMath { public static final double PI = 3.14159; // Přístup: MyMath.PI } - Metody:
- Metoda patří třídě, nikoliv konkrétnímu objektu.
- Může být volána přes název třídy (například
ClassName.staticMethod()). - Nemá přístup k nestatickým členům třídy (proměnné nebo metody), protože jsou spojeny s instancí.
// Příklad statické metody public class Calculator { public static int add(int a, int b) { return a + b; } // Volání: Calculator.add(5, 3) } - Iniciační bloky:
- Spouští se jednou při načtení třídy do JVM.
- Používá se k inicializaci statických polí nebo k provádění jiných akcí souvisejících s třídou.
// Příklad statického bloku public class DataInitializer { static { // Kód, který se provádí při načtení třídy System.out.println("DataInitializer třída načtena."); } } - Vnořené třídy (inner/nested classes):
- Statická vnořená třída se chová jako běžná třída vyšší úrovně, s výjimkou toho, že je uvnitř jiné třídy.
- Nevyžaduje vytvoření instance vnější třídy pro přístup k ní.
- Má přístup pouze ke statickým členům vnější třídy.
// Příklad statické vnořené třídy public class OuterClass { static class StaticInnerClass { // Pole a metody statické vnořené třídy } } // Přístup: OuterClass.StaticInnerClass inner = new OuterClass.StaticInnerClass();
Použití static pomáhá při vytváření užitečných tříd, ukládání sdílených dat a správě stavu na úrovni třídy.