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