Sobes.tech
Junior

Kokiems taikymams tinka static modifikatorius?

sobes.tech AI

Atsakymas iš AI

  1. Klasės kintamieji (statiniai laukai): Duomenų saugojimui, kurie yra bendri visiems klasės egzemplioriams. Pavyzdžiui, sukurtų objektų skaitiklis arba konstantos.
  2. Klasės metodai (statiniai metodai): Veiksmų atlikimui, kurie nepriklauso nuo konkretaus objekto. Pavyzdžiui, pagalbinės funkcijos arba metodai darbui su statiniais laukais.
  3. Statinio inicializavimo blokai: Sudėtingai statinių laukų inicializacijai klasės įkėlimo metu.
  4. Vidiniai statiniai klasės: Logiškai grupuoti susijusius klases arba naudoti kaip pagalbinius klases be išorinio objekto nuorodos.

Pavyzdžiai:

public class MyClass {
    // Statinis laukas (konstanta)
    public static final int MAX_COUNT = 100;

    // Statinis laukas (egzempliorių skaitiklis)
    private static int instanceCount = 0;

    // Statinio inicializacijos blokas
    static {
        System.out.println("MyClass įkelta.");
    }

    public MyClass() {
        instanceCount++;
    }

    // Statinis metodas
    public static int getInstanceCount() {
        return instanceCount;
    }

    // Vidinis statinis klasės
    public static class StaticInnerClass {
        public void doSomething() {
            System.out.println("Statinio vidinio klasės viduje.");
        }
    }
}

Statinių ir nestatinių narių palyginimo lentelė:

Bruožas Statinis narys Nestatinis narys
Su objektu Priklauso klasei Priklauso egzemplioriui
Prieiga Per klases pavadinimą arba objektą Per objektą
Inicijalizacija Kai įkeliamas klasė Kai kuriamas objektas
Atmintis Skiriama vieną kartą Skiriama kiekvienam objektui