इस कीवर्ड में Java
यह कीवर्ड क्या है? Java?
इस कीवर्ड में Java एक संदर्भ चर है जो किसी विधि या कंस्ट्रक्टर के वर्तमान ऑब्जेक्ट को संदर्भित करता है। इस कीवर्ड का उपयोग करने का मुख्य उद्देश्य Java इसका उद्देश्य समान नाम वाले वर्ग विशेषताओं और पैरामीटर्स के बीच भ्रम को दूर करना है।
इस कीवर्ड का उपयोग Java
'this' कीवर्ड के विभिन्न उपयोग निम्नलिखित हैं Java:
- इसका उपयोग वर्तमान क्लास के उदाहरण चर को संदर्भित करने के लिए किया जा सकता है
- इसका उपयोग वर्तमान क्लास कन्स्ट्रक्टर को आमंत्रित करने या आरंभ करने के लिए किया जा सकता है
- इसे विधि कॉल में एक तर्क के रूप में पारित किया जा सकता है
- इसे कन्स्ट्रक्टर कॉल में तर्क के रूप में पास किया जा सकता है
- इसका उपयोग वर्तमान क्लास इंस्टेंस को वापस करने के लिए किया जा सकता है
क्लिक करें यहाँ उत्पन्न करें यदि वीडियो उपलब्ध न हो
'this' कीवर्ड को उदाहरण से समझें।
- वर्ग: वर्ग खाता
- उदाहरण चर: ए और बी
- विधि सेट डेटा: a और b के लिए मान सेट करने के लिए.
- विधि डेटा दिखाएँ: a और b के मान प्रदर्शित करने के लिए.
- मुख्य विधि: जहाँ हम Account वर्ग के लिए एक ऑब्जेक्ट बनाते हैं और set data और show data विधियों को कॉल करते हैं।
आइये कोड संकलित करें और चलाएँ
A और B के लिए हमारा अपेक्षित आउटपुट क्रमशः 2 और 3 मानों पर आरंभीकृत किया जाना चाहिए।
लेकिन मान 0 है, क्यों? आइए जांच करें।
सेट डेटा विधि में, तर्कों को a और b के रूप में घोषित किया जाता है, जबकि उदाहरण चरों को भी a और b के रूप में नामित किया जाता है।
निष्पादन के दौरान, कंपाइलर भ्रमित हो जाता है। असाइन किए गए ऑपरेटर के बाईं ओर "a" इंस्टेंस वैरिएबल है या लोकल वैरिएबल। इसलिए, जब मेथड सेट डेटा को कॉल किया जाता है, तो यह 'a' का मान सेट नहीं करता है।
इसका समाधान “यह” कीवर्ड है
'a' और 'b' दोनों को जोड़ें Java इस कीवर्ड के बाद डॉट (.) ऑपरेटर लगाएं।
कोड निष्पादन के दौरान जब कोई ऑब्जेक्ट 'setdata' विधि को कॉल करता है। कीवर्ड 'this' को ऑब्जेक्ट हैंडलर “obj” द्वारा प्रतिस्थापित किया जाता है। (नीचे दी गई छवि देखें)।
तो अब संकलक जानता है,
- बायीं ओर का 'a' एक Instance variable है।
- जबकि दाईं ओर का 'a' एक स्थानीय चर है
RSI चर सही ढंग से आरंभीकृत किए गए हैं, और अपेक्षित आउटपुट दिखाया गया है।
मान लीजिए कि आप इतने समझदार हैं कि अपने इंस्टैंस वेरिएबल और मेथड्स आर्गुमेंट्स के लिए अलग-अलग नाम चुन सकते हैं।
लेकिन इस बार, आप क्लास के दो ऑब्जेक्ट बनाते हैं, जिनमें से प्रत्येक सेट डेटा विधि को कॉल करता है।
कंपाइलर यह कैसे निर्धारित करेगा कि उसे ऑब्जेक्ट 1 या ऑब्जेक्ट 2 के इंस्टेंस वेरिएबल पर काम करना है।
अच्छी तरह से संकलक अंतर्निहित रूप से जोड़ता है “this” कीवर्ड के साथ इंस्टेंस वेरिएबल (नीचे दी गई छवि)।
इस प्रकार, जब ऑब्जेक्ट 1 सेट डेटा विधि को कॉल कर रहा होता है, तो एक उदाहरण चर को उसके संदर्भ चर द्वारा जोड़ दिया जाता है।
जब ऑब्जेक्ट 2 सेट डेटा विधि को कॉल कर रहा होता है, तो ऑब्जेक्ट 2 का एक इंस्टेंस वेरिएबल संशोधित होता है।
इस प्रक्रिया का ध्यान कंपाइलर द्वारा ही रखा जाता है। जब तक कोई असाधारण स्थिति न हो, जैसा कि हमारे उदाहरण में है, आपको 'this' कीवर्ड को स्पष्ट रूप से जोड़ने की आवश्यकता नहीं है।
इस कीवर्ड में Java उदाहरण के साथ
उदाहरण: “this” कीवर्ड का उपयोग सीखने के लिए
चरण 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) कोड को सेव करें, संकलित करें और चलाएँ। इस बार, a और b के मान क्रमशः 2 और 3 पर सेट किए गए हैं।
सारांश
- इसका कीवर्ड Java एक संदर्भ चर है जो वर्तमान ऑब्जेक्ट को संदर्भित करता है।
- इस कीवर्ड का उपयोग Java वर्तमान क्लास इंस्टेंस वैरिएबल को संदर्भित करना है
- इसका उपयोग वर्तमान क्लास कन्स्ट्रक्टर को आमंत्रित करने या आरंभ करने के लिए किया जा सकता है
- इसे विधि कॉल में एक तर्क के रूप में पारित किया जा सकता है
- इस सूचक में Java कन्स्ट्रक्टर कॉल में तर्क के रूप में पास किया जा सकता है
- इस ऑपरेटर में Java वर्तमान क्लास इंस्टेंस को वापस करने के लिए इस्तेमाल किया जा सकता है
- इसमे Java वर्तमान ऑब्जेक्ट का संदर्भ है, जिसकी विधि को बुलाया जा रहा है।
- आप अपने इंस्टेंस/ऑब्जेक्ट की विधि/कन्स्ट्रक्टर में नामकरण संघर्ष से बचने के लिए “this” कीवर्ड का उपयोग कर सकते हैं।
हमारे लेख की जाँच करें Java साक्षात्कार प्रश्न:- यहां क्लिक करें