Originally posted by Ameen khan: Class variables = instance variables + static variables
When you create different instances of a class, each instance will have it's own copy of the (instance) variables defined in the class. Modifying an instance variable of one class won't affect the instance variable of another class. When you define a variable as static, it becomes a class variable. In this case only one copy of the variable is made and all the instances will share this single copy. If you make a change to this variable, it will reflect everywhere (i.e. in all instances).