Skip to main content

Static and this keyword


Static Keyword:

     Most of the time static keyword in java use for memory management. We can use static keyword with variables, methods and also with block (Static block).

1. Static with variables:
    If we declare static keyword with variables then it's called static variables. Static variables are use to access or refer common properties of all objects. The static varibels gets memory only once at the time of loading class loading. It makes program more efficient i.e., It saves memory. For example,
    static int length=100;

2. Static with method:
    If we use static keyword with method then it's called static method. The static method is belong to class rather than object of class. Static method can invoke or call without creating instance or object of class. For example,
    static void print(){
        System.out.println("Welcome in Java");
    }

Examples of static variable, method and block is as follows:


class Welcome{
static String textValue = "Welcome to java..";
static void print(){
System.out.println(textValue + " in print() method");
}
void display(){
System.out.println(textValue + " in display() method");
}
}
public class StaticKeyword{
static{
System.out.println("Static block is invoked");
}  
public static void main(String[] args) {
Welcome.print();
Welcome welcome= new Welcome();
welcome.display();
}

}

OUTPUT:
Static block is invoked
Welcome to java.. in print() method
Welcome to java.. in display() method

3. Block OR Static Block
    It is use to initialize static data member. It is execute before main method. For example,
    static{
        System.out.println("This is static block");
    }

This Keyword:

    This keyword is a reference variable which refer to current object.


The uses of this keyword:
  1. this can be used to refer current class instance variable.
  2. this can be used to invoke current class method (implicitly)
  3. this() can be used to invoke current class constructor.
  4. this can be passed as an argument in the method call.
  5. this can be passed as argument in the constructor call.
  6. this can be used to return the current class instance from the method.

For example,
class Employee{
int id;
String name;
public Employee(int id, String name) {
this.id=id;
this.name=name;
}
void print(){
System.out.println("Id : "+id+"\nName : "+name);
}
}
public class ThisKeyword {
public static void main(String[] args) {
Employee emp=new Employee(1,"Sam");
emp.print();
}
}
Output:
Id : 1
Name : Sam

Comments