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()