Sobes.tech
Junior

Šta su statičke promenljive?

sobes.tech АИ

Одговор од АИ

Statičke promenljive pripadaju klasi, a ne konkretnom primeru. One postoje u jednom jedinom primeru tokom celog trajanja izvršavanja programa i dele se svim objektima te klase. Promena statičke promenljive od strane jednog objekta biće vidljiva drugim objektima.

Glavne karakteristike:

  • Pripadnost: Klasi.
  • Broj primera: Jedan po klasi.
  • Vreme trajanja: Od učitavanja klase do završetka programa.
  • Pristup: Obično putem imena klase ClassName.staticVariable, mada je pristup putem primera takođe moguć (ne preporučuje se).
  • Inicijalizacija: Jednom pri učitavanju klase.

Primeri upotrebe:

  • Brojač kreiranih objekata klase.
  • Konstantne vrednosti zajedničke za celu klasu.
  • Zajednički resursi kojima upravlja klasa.

Primer u Javi:

class MyClass {
    static int counter = 0; // Statička promenljiva

    public MyClass() {
        counter++; // Povećava statički brojač pri kreiranju objekta
    }

    public static void main(String[] args) {
        MyClass obj1 = new MyClass();
        MyClass obj2 = new MyClass();

        System.out.println(MyClass.counter); // Izlaz: 2
    }
}

Primer u Pythonu:

class MyClass:
    counter = 0  # Statička promenljiva

    def __init__(self):
        MyClass.counter += 1  # Povećava statički brojač

    def main():
        obj1 = MyClass()
        obj2 = MyClass()

        print(MyClass.counter) # Izlaz: 2

    if __name__ == "__main__":
        main()