Sobes.tech
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.