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