Sobes.tech
Junior

რა არის სტატიკური ცვლადები?

sobes.tech AI

პასუხი AI-სგან

სტატიკური ცვლადები ეკუთვნიან კლასს, არა კონკრეტულ ობიექტს. ისინი არსებობენ მხოლოდ ერთ ეგზემპლარად მთელი პროგრამის განმავლობაში და იყოფა ყველა ამ კლასის ობიექტს შორის. სტატიკური ცვლადის ცვლილება ერთ ობიექტიდან იქნება ნაჩვენები სხვა ობიექტებისთვის.

ძირითადი მახასიათებლები:

  • საკუთრება: კლასს.
  • ეკზემპლარების რაოდენობა: ერთი თითო კლასისთვის.
  • ცხოვრების ხანგრძლივობა: კლასის ჩატვირთვიდან პროგრამის დასრულებამდე.
  • წვდომა: ჩვეულებრივ, კლასის სახელით ClassName.staticVariable, თუმცა შესაძლებელია ასევე ობიექტის მეშვეობით (არასასურველია).
  • ინიციალიზაცია: ერთხელ, კლასის ჩატვირთვისას.

გამოყენების მაგალითები:

  • კლასის შექმნილი ობიექტების გამყოლელი.
  • საერთო კონსტანტები მთელი კლასისთვის.
  • საერთო რესურსები, რომელსაც მართავს კლასი.

Java მაგალითი:

class MyClass {
    static int counter = 0; // სტატიკური ცვლადი

    public MyClass() {
        counter++; // ზრდის სტატიკურ გამყოლელს ობიექტის შექმნისას
    }

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

        System.out.println(MyClass.counter); // გამოტანა: 2
    }
}

Python მაგალითი:

class MyClass:
    counter = 0  # სტატიკური ცვლადი

    def __init__(self):
        MyClass.counter += 1  # ზრდის სტატიკურ გამყოლელს

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

        print(MyClass.counter) # გამოტანა: 2

    if __name__ == "__main__":
        main()