Static Variable: 1) Static Variables 2) Static Methods 3) Static Blocks of Code
Static Variable: 1) Static Variables 2) Static Methods 3) Static Blocks of Code
1) static variables
2) static methods
3) static blocks of code.
Lets look at static variables and static methods first.
static variable
It is a variable which belongs to the class and not to object(instance)
Static variables are initialized only once, at the start of the execution . These variables will be initialized first,
before the initialization of any instance variables
A single copy to be shared by all instances of the class
A static variable can be accessed directly by the class name and doesn’t need any object
Syntax : <class-name>.<variable-name>
static method
It is a method which belongs to the class and not to the object(instance)
A static method can access only static data. It cannot access non-static data (instance variables)
A static method can call only other static methods and cannot call a non-static method from it.
A static method can be accessed directly by the class name and doesn’t need any object
Syntax : <class-name>.<method-name>
A static method cannot refer to "this" or "super" keywords in anyway
main method is static , since it must be be accessible for an application to run , before any instantiation takes place.
Lets learn the nuances of the static keywords by doing some exercises!
Assignment: To Learn working of static variables & methods
Copy the following code into a editor
class Student {
int a; //initialized to zero
static int b; //initialized to zero only when class is loaded not for each object created.
Student(){
//Constructor incrementing static variable b
b++;
}
public void showData(){
System.out.println("Value of a = "+a);
System.out.println("Value of b = "+b);
}
\\public static void increment(){
//a++;
\\}
}
class Demo{
public static void main(String args[]){
Student s1 = new Student();
s1.showData();
Student s2 = new Student();
s2.showData();
//Student.b++;
//s1.showData();
}}
Step 2) Save & Compile the code. Run the code as, java Demo.
Step 3) Expected output show below
Output:
Value of a = 0
Value of a = 1
Value of a = 0
Value of a = 2