View Single Post
Old 23-12-2009, 06:00 AM   #5
masterstroke
Member
 
masterstroke's Avatar
 
Join Date: Dec 2009
Posts: 33
Rep Power: 0
masterstroke is on a distinguished road
Post What are the differences between static and non-static variables?

A static variable is associated with the class as a whole rather than with specific instances of a class. Each object will share a common copy of the static variables i.e. there is only one copy per class, no matter how many objects are created from it.

Class variables or static variables are declared with the static keyword in a class. These are declared outside a class and stored in static memory. Class variables are mostly used for constants.

Static variables are always called by the class name.

This variable is created when the program starts and gets destroyed when the programs stops.

The scope of the class variable is same an instance variable. Its initial value is same as instance variable and gets a default value when its not initialized corresponding to the data type.

Similarly, a static method is a method that belongs to the class rather than any object of the class and doesn’t apply to an object or even require that any objects of the class have been instantiated.

Static methods are implicitly final, because overriding is done based on the type of the object, and static methods are attached to a class, not an object.

A static method in a superclass can be shadowed by another static method in a subclass, as long as the original method was not declared final.

However, you can’t override a static method with a non-static method. In other words, you can’t change a static method into an instance method in a subclass.

Non-static variables take on unique values with each object instance.
masterstroke is offline   Reply With Quote