Sobes.tech
Junior
87
questionbank

Что такое статические переменные?

AI答案

sobes.tech 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()