this keyword in Java is a special keyword which can be used to represent current object or instance of any class in Java. “this” keyword can also call constructor of same class in Java and used to call overloaded constructor. In this Java tutorial we will see how to use this keyword in Java and
3) this keyword can be used to call overloaded constructor in java. if used than it must be first statement in constructor this() will call no argument constructor and this(parameter) will call one argument constructor with appropriate parameter. here is an example of using this() for constructor chaining:
different examples of this in Java. this sometime also associate with super keyword which is used to denote instance of super class in Java and can be used to call overloaded constructor in Java.
this keyword in Java
Important points about this keyword in Java
here are few important points related to using this keyword in Java.
1) this keyword represent current instance of class.
synchronized(this){
//this synchronized block will be locked on current instance
}
3) this keyword can be used to call overloaded constructor in java. if used than it must be first statement in constructor this() will call no argument constructor and this(parameter) will call one argument constructor with appropriate parameter. here is an example of using this() for constructor chaining:
Example of this keyword to call 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 than this can be used to refer 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 resolve 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 compilation
error:
this = new Loan(); //cannot assign value to final variable : this
6) you can call methods of class by using this keyword as shown in 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 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 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 represent current object of 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
3 comments :
@Anonymous, Thanks for your comment and liking this Java tutorial.
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.
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?
Post a Comment