Junior
Čo znamená kľúčové slovo 'static' v Jave?
sobes.tech AI
Odpoveď od AI
static v Jave sa používa na vyhlásenie prvkov patriacich triede, nie konkrétnemu inštanciu objektu.
Kľúčové slovo môže byť použité na:
- Premenné (polia):
- Jedna kópia premennej existuje pre celú triedu, bez ohľadu na počet vytvorených inštancií.
- K nej je možné pristupovať cez názov triedy (napríklad
ClassName.staticVariable).
// Príklad statickej premennej public class MyMath { public static final double PI = 3.14159; // Prístup: MyMath.PI } - Metódy:
- Metóda patrí triede, nie konkrétnemu objektu.
- Môže byť volaná cez názov triedy (napríklad
ClassName.staticMethod()). - Nemá prístup k nestatickým členom triedy (premenným alebo metódam), pretože sú viazané na inštanciu.
// Príklad statickej metódy public class Calculator { public static int add(int a, int b) { return a + b; } // Volanie: Calculator.add(5, 3) } - Bloky inicializácie:
- Vykonáva sa raz pri načítaní triedy do JVM.
- Používa sa na inicializáciu statických polí alebo vykonanie iných akcií súvisiacich s triedou.
// Príklad statického bloku public class DataInitializer { static { // Kód, ktorý sa vykoná pri načítaní triedy System.out.println("DataInitializer class loaded."); } } - Vnorené triedy (inner/nested classes):
- Statická vnorená trieda sa správa ako bežná trieda vyššej úrovne, s výnimkou toho, že sa nachádza vo vnútri inej triedy.
- Nevyžaduje vytvorenie inštancie vonkajšej triedy na prístup k nej.
- Má prístup iba k statickým členom vonkajšej triedy.
// Príklad statickej vnorenej triedy public class OuterClass { static class StaticInnerClass { // Polia a metódy statickej vnorenej triedy } } // Prístup: OuterClass.StaticInnerClass inner = new OuterClass.StaticInnerClass();
Použitie static pomáha pri vytváraní utilitárnych tried, uchovávaní spoločných dát a riadení stavu na úrovni triedy.