Sobes.tech
Junior

Ce sunt variabilele statice?

sobes.tech AI

Răspuns de la AI

Variabilele statice aparțin clasei, nu unei instanțe concrete. Ele există într-o singură instanță pe durata întregii execuții a programului și sunt partajate de toate obiectele acestei clase. Modificarea unei variabile statice de către un obiect va fi vizibilă pentru celelalte obiecte.

Caracteristici principale:

  • Atribuire: Clasei.
  • Număr de instanțe: Una pe clasă.
  • Durată de viață: De la încărcarea clasei până la finalizarea programului.
  • Acces: De obicei prin numele clasei ClassName.staticVariable, deși accesul printr-o instanță este, de asemenea, posibil (nu recomandat).
  • Inițializare: O singură dată la încărcarea clasei.

Exemple de utilizare:

  • Contorizarea obiectelor create ale clasei.
  • Constante comune pentru întreaga clasă.
  • Resurse comune gestionate de clasă.

Exemplu în Java:

class MyClass {
    static int counter = 0; // Variabilă statică

    public MyClass() {
        counter++; // Crește contorul static la crearea unui obiect
    }

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

        System.out.println(MyClass.counter); // Afișează: 2
    }
}

Exemplu în Python:

class MyClass:
    counter = 0  # Variabilă statică

    def __init__(self):
        MyClass.counter += 1  # Crește contorul static

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

        print(MyClass.counter) # Afișează: 2

    if __name__ == "__main__":
        main()