Sobes.tech
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.staticVariable nomi 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()