Sunday, July 11, 2021

10 Example of this keyword in Java

this keyword in Java is a special keyword that can be used to represent the current object or instance of any class in Java. “this” keyword can also call the constructor of the same class in Java and is used to call overloaded constructor. In this Java tutorial, we will see how to use this keyword in Java and different examples of this in Java. this sometimes also associates with a super keyword which is used to denote an instance of the superclass in Java and can be used to call an overloaded constructor in Java.




this keyword in Java

Here are a few important points related to using this keyword in Java.

1) this keyword represents the current instance of the class.

2) You can synchronize on this in a synchronized block in Java

synchronized(this){
//this synchronized block will be locked on current instance
}



example of this keyword in java tutorial3) this keyword can be used to call an overloaded constructors in java. if used then it must be the first statement in constructor this() will call the no-argument constructor and this(parameter) will call one argument constructor with the appropriate parameter. here is an example of using this() for constructor chaining:

Example of this keyword to call a constructor in Java

class Loan{
    private double interest;
    private String type;
  
    public Loan(){
       this(“personal loan”);
    }
  
    public Loan(String type){
        this.type = type;
        this.interest = 0.0;
    }  
}

4) If member variable and local variable name conflict then this can be used to refer to the member variable.
here is an example of this with member variable:

  public Loan(String type, double interest){
        this.type = type;
        this.interest = interest;
  }

Here local variable interest and member variable interest conflict which is easily resolved by referring member variable as this.interest

5) this is a final variable in Java and you can not assign value to this. this will result in a compilation error:

this = new Loan(); //cannot assign value to final variable : this

6) you can call methods of the class by using this keyword as shown in the below example.
   
   public String getName(){
        return this.toString();
    }

7) this can be used to return object. this is a valid return value. here is an example of using as return value.

public Loan getLoan(){
 return this;
}

8) this can be used to refer static members in Java as well but its discouraged and as per best practices
this should be used on the non-static reference.

9) "this" keyword can not be used in static context i.e. inside static methods or static initializer block.
if use this inside static context you will get a compilation error as shown in below example:

  public static void main(String args){
       this.toString{}; //compilation error: non static variable this can not be used in static context
  }

10) this can also be passed as method parameters since it represents the current object of the class.


That’s all on this keyword in Java. You should know about this and super keyword and get yourself familiar with different usage of this keyword in java.


Java Tutorials you may Like

6 comments :

Javin @ transient vs volatile in Java said...

@Anonymous, Thanks for your comment and liking this Java tutorial.

Anonymous said...

What are the Java best practices related to this keyword? I heard that, it's better to use this keyword to display instance operation rather than not using it? but doesn't it clutter code. Any way eager to learn some best practices in Java.

Kapil said...

thanks for sharing such subtle details of Java. I was wondering difference between this() and super() from long time, until I realize that they call to constructor from same class and super class. but it's not uncommon to see different variant e.g. this(1), super(1) etc, what does that mean?

Anonymous said...

nice example

MrBCut said...

very good examples! thank you

Unknown said...

and used in nested classes
this.OuterClass.member

Post a Comment