की तरह हर किसी को यहाँ का उल्लेख है, यह काम करता है क्योंकि get()
एक स्थिर तरीका है। यहां एक तरीका है कि आप इसके बारे में सोच सकते हैं:
जब आप जावा में किसी वर्ग को परिभाषित करते हैं, तो आप जो अनिवार्य रूप से कर रहे हैं वह उस डेटा को परिभाषित कर रहा है जो किसी ऑब्जेक्ट को पकड़ लेगा, और उस डेटा पर चलने वाली विधियों का एक सेट। अब जबकि आपके पास हजारों और हजारों वस्तुएं हो सकती हैं, लेकिन उनमें से प्रत्येक के लिए सभी विधियों की प्रतियां रखने का अर्थ नहीं है। क्या होता है कि वर्ग के तरीकों आपके द्वारा निर्धारित संग्रहीत करता है, और उन्हें उद्देश्य यह है कि आप पर विधि कॉल की गुंजाइश में निष्पादित करता है। यदि आप इन विधियों को एक प्रारंभिक ऑब्जेक्ट पर कॉल करने का प्रयास करते हैं, तो ऑब्जेक्ट अभी भी मौजूद है और विधि अभी भी मौजूद है, लेकिन इसमें काम करने के दायरे के लिए कोई मान्य नहीं है, इस प्रकार आपको NullPointerException
दे रहा है।
इस नियम का अपवाद स्थिर विधियां है, जो विधियों की आवश्यकता नहीं है - वे ऑब्जेक्ट-विशिष्ट डेटा का संदर्भ नहीं लेते हैं। यही कारण है कि वे इस बात के बावजूद दौड़ सकते हैं कि ऑब्जेक्ट प्रारंभ किया गया है या नहीं।
बस याद रखें कि वस्तुओं में उनकी विधियों की प्रतियां नहीं हैं ... विधियों को केवल ऑब्जेक्ट के डेटा के दायरे में बुलाया जाता है। तो आप अभी भी शून्य (अनियमित) ऑब्जेक्ट्स के तरीकों तक पहुंच सकते हैं, लेकिन गैर स्थैतिक तरीकों पर काम करने के लिए कोई डेटा नहीं है।
स्रोत
2011-12-21 05:37:20
मुझे लगता है कि आपके प्रिंट स्टेटमेंट में जावाजीज़लर.get() पूंजी जे – Nik
@ निकुनज प्रश्न के साथ बिल्कुल सही है, शब्द में कोई गलती नहीं है। – Nik88
कृपया मेरा उत्तर जांचें! – Nik