Junior
Ką reiškia 'static' raktinis žodis Java?
sobes.tech AI
Atsakymas iš AI
„static“ Java naudojamas elementų, priklausančių klasei, o ne konkrečiam objekto egzemplioriui, deklaravimui.
Raktinis žodis gali būti taikomas:
- Kintamiesiems (laukuose):
- Viena kopija kintamojo egzistuoja visai klasei, nepriklausomai nuo sukurtų egzempliorių skaičiaus.
- Pasiekti ją galima per klasės pavadinimą (pavyzdžiui,
ClassName.staticVariable).
// Statinio kintamojo pavyzdys public class MyMath { public static final double PI = 3.14159; // Pasiekti: MyMath.PI } - Metodams:
- Metodas priklauso klasei, o ne konkrečiam objektui.
- Jis gali būti iškviestas per klasės pavadinimą (pavyzdžiui,
ClassName.staticMethod()). - Neturi prieigos prie nestatinių klasės narių (kintamųjų ar metodų), nes jie susiję su egzemplioriumi.
// Statinio metodo pavyzdys public class Calculator { public static int add(int a, int b) { return a + b; } // Iškvietimas: Calculator.add(5, 3) } - Inicijavimo blokai:
- Vykdomas vieną kartą įkeliant klasę į JVM.
- Naudojamas statinių laukų inicijavimui arba kitų veiksmų, susijusių su klase, atlikimui.
// Statinio bloko pavyzdys public class DataInitializer { static { // Kodas, vykdomas įkeliant klasę System.out.println("DataInitializer class loaded."); } } - Vidiniai/nested klasės:
- Statinė vidinė klasė veikia kaip įprasta aukštesnio lygio klasė, išskyrus tai, kad ji yra kitoje klasėje.
- Nereikia kurti išorinės klasės egzemplioriaus, kad prie jos prieiti.
- Turi prieigą tik prie išorinės klasės statinių narių.
// Statinės vidinės klasės pavyzdys public class OuterClass { static class StaticInnerClass { // Statinės vidinės klasės laukai ir metodai } } // Prieiga: OuterClass.StaticInnerClass inner = new OuterClass.StaticInnerClass();
static naudojimas padeda kurti naudingas klasės, saugoti bendrus duomenis ir valdyti būseną klasės lygiu.