Java में यह Keyword क्या है?
जावा में यह कीवर्ड एक संदर्भ चर है जो एक विधि या एक निर्माणकर्ता की वर्तमान वस्तु को संदर्भित करता है। जावा में इस कीवर्ड का उपयोग करने का मुख्य उद्देश्य वर्ग विशेषताओं और मापदंडों के बीच भ्रम को दूर करना है जिनके समान नाम हैं।
जावा में 'इस' कीवर्ड के विभिन्न उपयोग निम्नलिखित हैं:
- इसका उपयोग वर्तमान वर्ग के उदाहरण चर को संदर्भित करने के लिए किया जा सकता है
- इसका उपयोग वर्तमान वर्ग निर्माता को आह्वान या आरंभ करने के लिए किया जा सकता है
- इसे विधि कॉल में एक तर्क के रूप में पारित किया जा सकता है
- इसे कंस्ट्रक्टर कॉल में तर्क के रूप में पारित किया जा सकता है
- इसका उपयोग वर्तमान वर्ग के उदाहरण को वापस करने के लिए किया जा सकता है
यदि वीडियो उपलब्ध नहीं है तो यहां क्लिक करें
एक उदाहरण के साथ 'इस' कीवर्ड को समझें।

- वर्ग : वर्ग खाता
- उदाहरण चर : ए और बी
- विधि सेट डेटा : a और b के लिए मान सेट करने के लिए।
- विधि दिखाएँ डेटा : a और b के लिए मान प्रदर्शित करने के लिए।
- मुख्य विधि: जहाँ हम खाता वर्ग के लिए एक वस्तु बनाते हैं और कॉल विधियाँ डेटा सेट करती हैं और डेटा दिखाती हैं।
कोड संकलित करें और चलाएं
ए और बी के लिए हमारा अपेक्षित आउटपुट क्रमशः मूल्यों 2 और 3 के लिए शुरू किया जाना चाहिए।
लेकिन मूल्य 0 है, क्यों? जांच करते हैं।
विधि सेट डेटा में, तर्कों को ए और बी के रूप में घोषित किया जाता है, जबकि उदाहरण चर को ए और बी के रूप में भी नामित किया जाता है।
निष्पादन के दौरान, कंपाइलर उलझन में है। असाइन किए गए ऑपरेटर के बाईं ओर "ए" उदाहरण के चर या स्थानीय चर है। इसलिए, विधि सेट डेटा को कॉल करने पर यह 'a' का मान सेट नहीं करता है।
समाधान "यह" कीवर्ड है
जावा के साथ 'a' और 'b' दोनों को जोड़ें। यह कीवर्ड एक डॉट (ऑपरेटर) के बाद है।
कोड निष्पादन के दौरान जब कोई वस्तु विधि को 'सेटडेटा' कहती है। कीवर्ड 'this' को ऑब्जेक्ट हैंडलर "obj" से बदल दिया गया है। (नीचे दी गई छवि देखें)।
तो अब संकलक जानता है,
- बाईं ओर स्थित 'a' एक इंस्टेंस चर है।
- जबकि दाईं ओर का 'a' एक स्थानीय वैरिएबल है
चर को सही ढंग से आरंभ किया जाता है, और अपेक्षित आउटपुट दिखाया जाता है।
मान लीजिए कि आप अपने उदाहरण चर और विधियों के तर्कों के लिए अलग-अलग नाम चुनने के लिए पर्याप्त स्मार्ट हैं।
लेकिन इस बार के आसपास, आप कक्षा के दो ऑब्जेक्ट बनाते हैं, प्रत्येक सेट डेटा पद्धति को कॉल करते हैं।
कंपाइलर कैसे निर्धारित करेगा कि यह ऑब्जेक्ट 1 या ऑब्जेक्ट 2 के उदाहरण चर पर काम करना है या नहीं।
खैर, संकलक उदाहरण के लिए "यह" कीवर्ड (नीचे की छवि) के साथ उदाहरण चर को जोड़ता है।
ऐसा है कि जब ऑब्जेक्ट 1 सेट डेटा विधि को बुला रहा है, तो एक उदाहरण चर इसके संदर्भ चर द्वारा जोड़ा जाता है।
जबकि ऑब्जेक्ट 2 सेट डेटा विधि को बुला रहा है, ऑब्जेक्ट 2 का एक उदाहरण चर संशोधित किया गया है।
कंपाइलर द्वारा ही इस प्रक्रिया का ध्यान रखा जाता है। जब तक हमारे उदाहरण में कोई असाधारण स्थिति न हो, आपको स्पष्ट रूप से इस 'कीवर्ड को जोड़ना नहीं है।
उदाहरण: "यह" कीवर्ड का उपयोग सीखने के लिए
चरण 1) निम्नलिखित कोड को एक नोटपैड में कॉपी करें।
class Account{int a;int b;public void setData(int a ,int b){a = a;b = b;}public void showData(){System.out.println("Value of A ="+a);System.out.println("Value of B ="+b);}public static void main(String args[]){Account obj = new Account();obj.setData(2,3);obj.showData();}}
चरण 2) कोड को सहेजें, संकलित करें और चलाएँ।
चरण 3) a और b का मान शून्य के रूप में दिखाया गया है? " इस " कीवर्ड के साथ त्रुटि परिशिष्ट लाइन # 6 और 7 को सही करने के लिए ।
this.a =a;this.b =b;
चरण 4) कोड को सहेजें, संकलित करें, और चलाएँ। इस बार, ए और बी के मूल्य क्रमशः 2 और 3 पर सेट हैं।
सारांश
- जावा में यह कीवर्ड एक संदर्भ चर है जो वर्तमान वस्तु को संदर्भित करता है।
- जावा में इस कीवर्ड का उपयोग वर्तमान वर्ग उदाहरण चर को संदर्भित करना है
- इसका उपयोग वर्तमान वर्ग निर्माता को आह्वान या आरंभ करने के लिए किया जा सकता है
- इसे विधि कॉल में एक तर्क के रूप में पारित किया जा सकता है
- जावा में इस पॉइंटर को कंस्ट्रक्टर कॉल में तर्क के रूप में पारित किया जा सकता है
- जावा में इस ऑपरेटर का उपयोग वर्तमान वर्ग के उदाहरण को वापस करने के लिए किया जा सकता है
- यह जावा वर्तमान वस्तु का संदर्भ है, जिसकी विधि को कहा जा रहा है।
- आप अपने उदाहरण / ऑब्जेक्ट की विधि / निर्माता में नामकरण संघर्ष से बचने के लिए "इस" कीवर्ड का उपयोग कर सकते हैं।