इस कीवर्ड में Java
⚡ स्मार्ट सारांश
Java यह कीवर्ड एक संदर्भ चर है जो किसी विधि या कंस्ट्रक्टर के भीतर वर्तमान ऑब्जेक्ट को इंगित करता है। Lessइस लेख में उद्देश्य, सामान्य उपयोग, नामकरण संबंधी विवाद, कंस्ट्रक्टर चेनिंग और एक हल किया हुआ उदाहरण शामिल हैं।

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

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











