Junior
Statik o'zgaruvchilar nima?
sobes.tech AI
AIdan javob
Statik o'zgaruvchilar sinfga tegishli bo'lib, aniq bir nusxaga emas. Ular dastur bajarilishi davomida yagona nusxada mavjud bo'lib, bu sinfning barcha ob'ektlari tomonidan bo'lishiladi. Statik o'zgaruvchini bir ob'ekt tomonidan o'zgartirish boshqalar uchun ham ko'rinadi.
Asosiy xususiyatlar:
- Tegishlilik: Sinfga.
- Nusxa soni: Bir sinf uchun bitta.
- Hayot davomiyligi: Sinfa yuklanganidan dastur tugaguncha.
- Kirish: Odatiy ravishda
ClassName.staticVariablenomi bilan, garchi ob'ekt orqali kirish ham mumkin (tavsiya etilmaydi). - Initsializatsiya: Sinf yuklanganda bir marta.
Foydalanish misollari:
- Sinf tomonidan yaratilgan ob'ektlar sonini hisoblash.
- Sinf uchun umumiy doimiylar.
- Sinf tomonidan boshqariladigan umumiy resurslar.
Java misoli:
class MyClass {
static int counter = 0; // Statik o'zgaruvchi
public MyClass() {
counter++; // Ob'ekt yaratilganda statik hisoblagichni oshiradi
}
public static void main(String[] args) {
MyClass obj1 = new MyClass();
MyClass obj2 = new MyClass();
System.out.println(MyClass.counter); // Chiqish: 2
}
}
Python misoli:
class MyClass:
counter = 0 # Statik o'zgaruvchi
def __init__(self):
MyClass.counter += 1 # Statik hisoblagichni oshiradi
def main():
obj1 = MyClass()
obj2 = MyClass()
print(MyClass.counter) # Chiqish: 2
if __name__ == "__main__":
main()