In
class-based,
object-oriented programming
Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impl ...
, a class variable is a
variable defined in a
class
Class, Classes, or The Class may refer to:
Common uses not otherwise categorized
* Class (biology), a taxonomic rank
* Class (knowledge representation), a collection of individuals or objects
* Class (philosophy), an analytical concept used d ...
of which a single copy exists, regardless of how many
instances of the class exist.
A class variable is not an
instance variable
In class-based, object-oriented programming, an instance variable is a variable defined in a class (i.e., a member variable), for which each instantiated object of the class has a separate copy, or instance. An instance variable has similari ...
. 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
method
Method (, methodos, from μετά/meta "in pursuit or quest of" + ὁδός/hodos "a method, system; a way or manner" of doing, saying, etc.), literally means a pursuit of knowledge, investigation, mode of prosecuting such inquiry, or system. In re ...
s ("member functions") as well; a class may have both
instance method
A method in object-oriented programming (OOP) is a Procedure (computer science), procedure associated with an Object (computer science), object, and generally also a Message passing, message. An object consists of ''state data'' and ''behavior''; ...
s and
class methods.
Static member variables and static member functions
In some languages, class variables and class methods are either statically resolved, not via
dynamic dispatch
In computer science, dynamic dispatch is the process of selecting which implementation of a polymorphic operation (method or function) to call at run time. It is commonly employed in, and considered a prime characteristic of, object-oriented ...
, or their memory
statically allocated at compile time (once for the entire class, as
static variable
In computer programming, a static variable is a variable that has been allocated "statically", meaning that its lifetime (or "extent") is the entire run of the program. This is in contrast to shorter-lived automatic variables, whose storage is ...
s), not dynamically allocated at run time (at every instantiation of an object). In other cases, however, either or both of these are dynamic. For example, if classes can be dynamically defined (at run time), class variables of these classes are allocated dynamically when the class is defined, and in some languages class methods are also dispatched dynamically.
Thus in some languages, static member variable or static member function are used synonymously with or in place of "class variable" or "class function", but these are not synonymous across languages. These terms are commonly used in
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
,
C#,
[ and C++, where class variables and class methods are declared with the ]static
keyword, and referred to as static member variables or static member functions.
Examples
C++
struct Request ;
int Request::count = 0;
In this C++ example, the class variable Request::count
is incremented on each call to the constructor, so that Request::count
always holds the number of Requests that have been constructed, and each new Request object is given a number
in sequential order. Since count
is a class variable, there is only one object Request::count
; in contrast, each Request object contains its own distinct number
field.
Also note that the variable Request::count
is initialized only once.
Python
class Dog:
vertebrate_group = 'mammals' # class variable
dog_1 = Dog
print(dog_1.vertebrate_group) # accessing the class variable
In the above Python code, it does not provide much information as there is only class variable in the Dog class that provide the vertebrate group of dog as mammals. In instance variable, you could customize your own object (in this case, dog_1) by having one or more instance variable
In class-based, object-oriented programming, an instance variable is a variable defined in a class (i.e., a member variable), for which each instantiated object of the class has a separate copy, or instance. An instance variable has similari ...
s in the Dog class.
Notes
{{DEFAULTSORT:Class Variable
Object-oriented programming
Variable (computer science)
Articles with example C++ code