मैं इस कीवर्ड से जो कुछ भी समझा था उसे साझा करना चाहूंगा। इस कीवर्ड के जावा में 6 usages हैं: -
1. इसका उपयोग वर्तमान वर्ग चर को संदर्भित करने के लिए किया जा सकता है।
हमें एक कोड के साथ समझते हैं। *
यदि हम इस कीवर्ड का उपयोग नीचे दिए गए उदाहरण से नहीं करते हैं, तो समस्या को समझें:
class Employee{
int id_no;
String name;
float salary;
Student(int id_no,String name,float salary){
id_no = id_no;
name=name;
salary = salary;
}
void display(){System.out.println(id_no +" "+name+" "+ salary);}
}
class TestThis1{
public static void main(String args[]){
Employee s1=new Employee(111,"ankit",5000f);
Employee s2=new Employee(112,"sumit",6000f);
s1.display();
s2.display();
}}
आउटपुट: -
0 null 0.0
0 null 0.0
उपरोक्त उदाहरण में, पैरामीटर (औपचारिक तर्क) और उदाहरण चर समान हैं। इसलिए, हम स्थानीय चर और उदाहरण चर को अलग करने के लिए इस कीवर्ड का उपयोग कर रहे हैं।
class Employee{
int id_no;
String name;
float salary;
Student(int id_no,String name,float salary){
this.id_no = id_no;
this.name=name;
this.salary = salary;
}
void display(){System.out.println(id_no +" "+name+" "+ salary);}
}
class TestThis1{
public static void main(String args[]){
Employee s1=new Employee(111,"ankit",5000f);
Employee s2=new Employee(112,"sumit",6000f);
s1.display();
s2.display();
}}
उत्पादन:
111 ankit 5000
112 sumit 6000
2. वर्तमान वर्ग विधि को लागू करने के लिए।
class A{
void m(){System.out.println("hello Mandy");}
void n(){
System.out.println("hello Natasha");
//m();//same as this.m()
this.m();
}
}
class TestThis4{
public static void main(String args[]){
A a=new A();
a.n();
}}
आउटपुट:
hello Natasha
hello Mandy
3. वर्तमान वर्ग निर्माता को लागू करने के लिए। इसका उपयोग कंस्ट्रक्टर चेनिंग के लिए किया जाता है।
class A{
A(){System.out.println("hello ABCD");}
A(int x){
this();
System.out.println(x);
}
}
class TestThis5{
public static void main(String args[]){
A a=new A(10);
}}
आउटपुट:
hello ABCD
10
4. विधि में एक तर्क के रूप में पारित करने के लिए।
class S2{
void m(S2 obj){
System.out.println("The method is invoked");
}
void p(){
m(this);
}
public static void main(String args[]){
S2 s1 = new S2();
s1.p();
}
}
आउटपुट:
The method is invoked
5. कंस्ट्रक्टर कॉल में एक तर्क के रूप में पारित करने के लिए
class B{
A4 obj;
B(A4 obj){
this.obj=obj;
}
void display(){
System.out.println(obj.data);//using data member of A4 class
}
}
class A4{
int data=10;
A4(){
B b=new B(this);
b.display();
}
public static void main(String args[]){
A4 a=new A4();
}
}
आउटपुट: -
10
6. वर्तमान वर्ग का उदाहरण वापस करने के लिए
class A{
A getA(){
return this;
}
void msg(){System.out.println("Hello");}
}
class Test1{
public static void main(String args[]){
new A().getA().msg();
}
}
आउटपुट: -
Hello
साथ ही, यह कीवर्ड बिना उपयोग नहीं किया जा सकता है। (डॉट) क्योंकि यह सिंटैक्स अमान्य है।