Sobes.tech
Junior

Co jsou statické proměnné?

sobes.tech AI

Odpověď od AI

Statické proměnné patří ke třídě, nikoliv ke konkrétnímu objektu. Existují v jediném výskytu po celou dobu běhu programu a jsou sdíleny všemi objekty této třídy. Změna statické proměnné jedním objektem bude viditelná i ostatním.

Hlavní vlastnosti:

  • Příslušnost: Třídě.
  • Počet výskytů: Jeden na třídu.
  • Délka života: Od načtení třídy do ukončení programu.
  • Přístup: Obvykle přes název třídy ClassName.staticVariable, i když je možný i přístup přes instanci (nedoporučuje se).
  • Inicializace: Jednou při načtení třídy.

Příklady použití:

  • Čítače vytvořených objektů třídy.
  • Konstanty platné pro celou třídu.
  • Sdílené zdroje spravované třídou.

Příklad v Java:

class MyClass {
    static int counter = 0; // Statická proměnná

    public MyClass() {
        counter++; // Zvýšení statického čítače při vytvoření objektu
    }

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

        System.out.println(MyClass.counter); // Výstup: 2
    }
}

Příklad v Python:

class MyClass:
    counter = 0  # Statická proměnná

    def __init__(self):
        MyClass.counter += 1  # Zvýšení statického čítače

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

        print(MyClass.counter) # Výstup: 2

    if __name__ == "__main__":
        main()