Sobes.tech
Junior

Wat zijn statische variabelen?

sobes.tech AI

Antwoord van AI

Statische variabelen behoren tot de klasse, niet tot een specifiek exemplaar. Ze bestaan in één exemplaar gedurende de hele uitvoering van het programma en worden gedeeld door alle objecten van die klasse. Het wijzigen van een statische variabele door één object zal zichtbaar zijn voor andere objecten.

Belangrijkste kenmerken:

  • Toebedeling: Aan de klasse.
  • Aantal exemplaren: Eén per klasse.
  • Levensduur: Van het laden van de klasse tot het einde van het programma.
  • Toegang: Meestal via de naam van de klasse ClassName.staticVariable, hoewel toegang via een instantie ook mogelijk is (niet aanbevolen).
  • Initialisatie: Eén keer bij het laden van de klasse.

Gebruik voorbeelden:

  • Telwaarden van gemaakte objecten van de klasse.
  • Constanten die voor de hele klasse gelden.
  • Gedeelde resources beheerd door de klasse.

Java voorbeeld:

class MyClass {
    static int counter = 0; // Statische variabele

    public MyClass() {
        counter++; // Verhoogt de statische teller bij het maken van een object
    }

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

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

Python voorbeeld:

class MyClass:
    counter = 0  # Statische variabele

    def __init__(self):
        MyClass.counter += 1  # Verhoogt de statische teller

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

        print(MyClass.counter) # Uitvoer: 2

    if __name__ == "__main__":
        main()