"this"
keyword can be used to represent current object or instance of any class in
Java. It can also call constructor of same class and used to call overloaded
constructor.
Usage of java
this keyword
1.
"this" keyword can be used to refer current class instance variable.
"this"
keyword can be used to resolve the ambiguity between the instance variable and method/constructor
parameter.
class Test {
int id;
Test(int id){
this.id = id;
}
}
2.
"this()" can be used to invoke current class constructor.
3.
"this" keyword can be used to invoke current class method
(implicitly).
class Test {
void method1()
{
System.out.println("method is invoked");
}
void method2()
{
this.method1();//no need because compiler does it for you.
}
void method3()
{
method1();
//complier will add this to invoke method1() method as
this.method1()
}
public static void main(String
args[]) {
Test test = new Test();
test.method2();
test.method3();
}
}
4.
"this" can be passed as an argument in the method/constructor call
since it represent current object of class.
5.
"this" can be used to return current class instance.
public MyClass
getClassInstance(){
return this;
//"this" keyword cannot be used in static context i.e.
inside static methods or static initializer block.
}
6. We
can synchronize on this in synchronized block in Java
synchronized(this){
//this synchronized block will be locked on current instance
}
Note:
1. "this"
is a final variable in Java and you cannot assign value to this.
this
= new MyClass (); //cannot assign value to final variable : this
2. If
use this inside static context you will get compilation error.
public static void main(String
args){
this.toString{};
//compilation error: non static variable this cannot be
used in static context
}
3. Inside
a constructor, the call to this(...) must be the first instruction.
No comments:
Post a Comment