Junior
Čo sú statické premenné?
sobes.tech AI
Odpoveď od AI
Statické premenné patria ku triede, nie ku konkrétnemu výtlačku. Existujú v jednom výtlačku počas celého behu programu a sú zdieľané všetkými objektmi tejto triedy. Zmena statickej premennej jedným objektom bude viditeľná pre ostatné objekty.
Hlavné vlastnosti:
- Prináležitosť: Triede.
- Počet výtlačkov: Jeden na triedu.
- Doba života: Od načítania triedy do ukončenia programu.
- Prístup: Zvyčajne cez názov triedy
ClassName.staticVariable, aj keď je možný aj prístup cez inštanciu (nedoporučuje sa). - Inicializácia: Raz pri načítaní triedy.
Príklady použitia:
- Čítač vytvorených objektov triedy.
- Konštanty spoločné pre celú triedu.
- Zdieľané zdroje spravované triedou.
Príklad v Jave:
class MyClass {
static int counter = 0; // Statická premenná
public MyClass() {
counter++; // Zvýšenie statického čítača pri vytvorení objektu
}
public static void main(String[] args) {
MyClass obj1 = new MyClass();
MyClass obj2 = new MyClass();
System.out.println(MyClass.counter); // Výstup: 2
}
}
Príklad v Pythone:
class MyClass:
counter = 0 # Statická premenná
def __init__(self):
MyClass.counter += 1 # Zvýšenie statického čítača
def main():
obj1 = MyClass()
obj2 = MyClass()
print(MyClass.counter) # Výstup: 2
if __name__ == "__main__":
main()