Junior
Czym są zmienne statyczne?
sobes.tech AI
Odpowiedź od AI
Zmienne statyczne należą do klasy, a nie do konkretnego egzemplarza. Istnieją w pojedynczym egzemplarzu przez cały czas działania programu i są współdzielone przez wszystkie obiekty tej klasy. Zmiana zmiennej statycznej przez jeden obiekt będzie widoczna dla innych obiektów.
Główne cechy:
- Przynależność: Do klasy.
- Liczba egzemplarzy: Jeden na klasę.
- Czas życia: Od momentu załadowania klasy do zakończenia programu.
- Dostęp: Zazwyczaj przez nazwę klasy
ClassName.staticVariable, choć dostęp przez instancję jest również możliwy (niezalecane). - Inicjalizacja: Raz podczas ładowania klasy.
Przykłady użycia:
- Liczniki utworzonych obiektów klasy.
- Stałe wspólne dla całej klasy.
- Wspólne zasoby zarządzane przez klasę.
Przykład w Java:
class MyClass {
static int counter = 0; // Zmienna statyczna
public MyClass() {
counter++; // Zwiększa licznik statyczny przy tworzeniu obiektu
}
public static void main(String[] args) {
MyClass obj1 = new MyClass();
MyClass obj2 = new MyClass();
System.out.println(MyClass.counter); // Wyjście: 2
}
}
Przykład w Python:
class MyClass:
counter = 0 # Zmienna statyczna
def __init__(self):
MyClass.counter += 1 # Zwiększa licznik statyczny
def main():
obj1 = MyClass()
obj2 = MyClass()
print(MyClass.counter) # Wyjście: 2
if __name__ == "__main__":
main()