Введение
Переменная, определенная в классе, которой все объекты класса совместно владеют одной копией. В объектно-ориентированном программировании, переменная класса – это переменная, определенная в классе, и существующая в единственном экземпляре, независимо от количества созданных объектов этого класса. Переменная класса отличается от переменной экземпляра. Это особый тип атрибута класса (или свойства, поля или члена данных). Аналогичное различие между членами экземпляра и класса применимо и к методам ("функциям-членам"): класс может содержать как методы экземпляра, так и методы класса.
In class based, object oriented programming, a class variable is a variable defined in a class of which a single copy exists, regardless of how many instances of the class exist. A class variable is not an instance variable. It is a special type of class attribute (or class property, field, or data member). The same dichotomy between instance and class members applies to methods ("member functions") as well; a class may have both instance methods and class methods.
Изменные статических членов и функции статических членов
В некоторых языках переменные класса и методы класса разрешаются статически, а не посредством динамической диспетчеризации, или их память выделяется статически во время компиляции (один раз для всего класса, как статические переменные), а не динамически во время выполнения (при каждом создании экземпляра объекта). Однако в других случаях один или оба этих аспекта могут быть динамическими. Например, если классы могут определяться динамически (во время выполнения), то переменные класса этих классов выделяются динамически при определении класса, а в некоторых языках методы класса также диспетчеризируются динамически. Таким образом, в некоторых языках термины "переменная статического члена" или "функция статического члена" используются как синонимы или вместо "переменной класса" или "функции класса", но эти термины не являются синонимичными во всех языках. Эти термины обычно используются в Java, C# и C++, где переменные класса и методы класса объявляются с использованием ключевого слова static и называются статическими переменными-членами или статическими функциями-членами.