Sobes.tech
Junior

Statik dəyişənlər nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Statik dəyişənlər sinfə aiddir, konkret nümunəyə deyil. Onlar proqramın icrası boyunca tək nümunədə mövcuddur və bu sinfin bütün obyektləri arasında bölüşdürülür. Statik dəyişəni bir obyekt tərəfindən dəyişdirmək digər obyektlər üçün də görünəcək.

Əsas xüsusiyyətlər:

  • Aidlik: Sinfə.
  • Nümunə sayı: Bir sinf üçün bir.
  • Həyat müddəti: Sinfa yükləndiyi andan proqram bitənə qədər.
  • Əlçatanlıq: Ümumiyyətlə, sinf adı ilə ClassName.staticVariable, həmçinin nümunə vasitəsilə də (tövsiyə edilmir).
  • İlkinləşdirmə: Sinfa yükləndikdə bir dəfə.

İstifadə nümunələri:

  • Sinif tərəfindən yaradılan obyektlərin sayğacı.
  • Ümumi sabitlər.
  • Sinif tərəfindən idarə olunan ümumi resurslar.

Java nümunəsi:

class MyClass {
    static int counter = 0; // Statik dəyişən

    public MyClass() {
        counter++; // Obyekt yaradıldıqda statik sayğacı artırır
    }

    public static void main(String[] args) {
        MyClass obj1 = new MyClass();
        MyClass obj2 = new MyClass();

        System.out.println(MyClass.counter); // Çıxış: 2
    }
}

Python nümunəsi:

class MyClass:
    counter = 0  # Statik dəyişən

    def __init__(self):
        MyClass.counter += 1  # Statik sayğacı artırır

    def main():
        obj1 = MyClass()
        obj2 = MyClass()

        print(MyClass.counter) # Çıxış: 2

    if __name__ == "__main__":
        main()