Saturday 16 June 2018

Static variables in Java



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.

Example:-
public class SampleProgram {  
      static int i = 1;  
      public static void main(String[] args) {  
           System.out.println("Initial Value:" + i);  
           incrementAndDisplay();  
      }  
      private static void incrementAndDisplay() {  
           i = i + 2;  
           System.out.println("After increment:" + i);  
      }  
 }  

Output:-

Initial Value:1
After increment:3

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.


Enjot Reading.

No comments:

Post a Comment