Skip to content
Related Articles

Related Articles

Improve Article

Difference between Instance Variable and Class Variable

  • Last Updated : 28 Apr, 2021

Instance Variable: It is basically a class variable without a static modifier and is usually shared by all class instances. Across different objects, these variables can have different values. They are tied to a particular object instance of the class, therefore, the contents of an instance variable are totally independent of one object instance to others.

Example:

class Taxes  
{  
   int count;  
   /*...*/  
}  

Class Variable: It is basically a static variable that can be declared anywhere at class level with static. Across different objects, these variables can have only one value. These variables are not tied to any particular object of the class, therefore, can share across all objects of the class.  

Example:

class Taxes  
{  
   static int count;  
   /*...*/  
}  

Tabular difference between Instance and Class variable:



Instance Variable

Class Variable

It is a variable whose value is instance-specific and now shared among instances.  It is a variable that defines a specific attribute or property for a class.  
These variables cannot be shared between classes. Instead, they only belong to one specific class.  These variables can be shared between class and its subclasses. 
It usually reserves memory for data that the class needs.  It usually maintains a single shared value for all instances of class even if no instance object of the class exists.  
It is generally created when an instance of the class is created.  It is generally created when the program begins to execute.  
It normally retains values as long as the object exists.  It normally retains values until the program terminates.
It has many copies so every object has its own personal copy of the instance variable. It has only one copy of the class variable so it is shared among different objects of the class.  
It can be accessed directly by calling variable names inside the class.  It can be accessed by calling with the class name.  
These variables are declared without using the static keyword.  These variables are declared using the keyword static.  
Changes that are made to these variables through one object will not reflect in another object.  Changes that are made to these variables through one object will reflect in another object. 

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

My Personal Notes arrow_drop_up
Recommended Articles
Page :