Sobes.tech
Junior

Čo sú statické premenné?

sobes.tech AI

Odpoveď od AI

Statické premenné patria ku triede, nie ku konkrétnemu výtlačku. Existujú v jednom výtlačku počas celého behu programu a sú zdieľané všetkými objektmi tejto triedy. Zmena statickej premennej jedným objektom bude viditeľná pre ostatné objekty.

Hlavné vlastnosti:

  • Prináležitosť: Triede.
  • Počet výtlačkov: Jeden na triedu.
  • Doba života: Od načítania triedy do ukončenia programu.
  • Prístup: Zvyčajne cez názov triedy ClassName.staticVariable, aj keď je možný aj prístup cez inštanciu (nedoporučuje sa).
  • Inicializácia: Raz pri načítaní triedy.

Príklady použitia:

  • Čítač vytvorených objektov triedy.
  • Konštanty spoločné pre celú triedu.
  • Zdieľané zdroje spravované triedou.

Príklad v Jave:

class MyClass {
    static int counter = 0; // Statická premenná

    public MyClass() {
        counter++; // Zvýšenie statického čítača pri vytvorení objektu
    }

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

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

Príklad v Pythone:

class MyClass:
    counter = 0  # Statická premenná

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

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

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

    if __name__ == "__main__":
        main()