Sobes.tech
Junior

Cosa sono le variabili statiche?

sobes.tech AI

Risposta dell'AI

Le variabili statiche appartengono alla classe, non a un'istanza specifica. Esistono in un'unica istanza durante tutto il tempo di esecuzione del programma e sono condivise da tutti gli oggetti di quella classe. La modifica di una variabile statica da parte di un oggetto sarà visibile agli altri oggetti.

Caratteristiche principali:

  • Appartenenza: Alla classe.
  • Numero di istanze: Una per classe.
  • Durata di vita: Dall'avvio della classe fino alla fine del programma.
  • Accesso: Di solito tramite il nome della classe ClassName.staticVariable, anche se è possibile accedere tramite un'istanza (non raccomandato).
  • Inizializzazione: Una sola volta al caricamento della classe.

Esempi di utilizzo:

  • Contatori di oggetti creati dalla classe.
  • Costanti condivise da tutta la classe.
  • Risorse condivise gestite dalla classe.

Esempio in Java:

class MyClass {
    static int counter = 0; // Variabile statica

    public MyClass() {
        counter++; // Incrementa il contatore statico alla creazione di un oggetto
    }

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

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

Esempio in Python:

class MyClass:
    counter = 0  # Variabile statica

    def __init__(self):
        MyClass.counter += 1  # Incrementa il contatore statico

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

        print(MyClass.counter) # Output: 2

    if __name__ == "__main__":
        main()