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()