मैं जावा में लिंक्डलिस्ट सीख रहा हूं और मेरे पास तीन फाइलें हैं Main.java
, List.java
और Node.java
। जब मैं ऐसा कर रहा हूं, तो मुझे एक सवाल आया कि मुझे स्थानीय चर को प्रारंभ क्यों करना चाहिए जिसे विधि में घोषित किया गया है, लेकिन क्लास वेरिएबल नहीं है जिसे कक्षा में घोषित किया गया है।क्यों जावा डिफ़ॉल्ट रूप से केवल कक्षा चर प्रारंभ कर रहा है लेकिन स्थानीय चर नहीं?
पहली तस्वीर में, मैंने कक्षा चर के रूप में घोषित किया, यह कोई त्रुटि नहीं फेंकता है।
लेकिन दूसरी तस्वीर में मैंने स्थानीय चर के रूप में सिर शुरू किया.अब, यह स्थानीय चर प्रारंभ करने में त्रुटि उत्पन्न करता है।
कक्षा चर के रूप में घोषित होने पर क्या अंतर होता है? जावा में
शुरुआती।
अपडेट: मुझे पता है कि इसे कैसे ठीक किया जाए, लेकिन मुझे स्पष्ट नहीं है कि क्यों जावा डिफ़ॉल्ट रूप से केवल कक्षा चर प्रारंभ कर रहा है लेकिन स्थानीय चर नहीं।
फ़ील्ड चर डिफ़ॉल्ट रूप से प्रारंभ किए जाते हैं। ऐसा इसलिए है क्योंकि जैसे ही इंस्टेंस बनाया गया है, उन चरों को एक्सेस करने योग्य होने की आवश्यकता है, क्योंकि जब तक वस्तु जीवित है तब तक वे पहुंच योग्य हैं। स्थानीय चर, हालांकि, केवल तभी जरूरी है जब उस विशेष स्थानीय दायरे को निष्पादित किया जा रहा हो। यदि जावा स्थानीय वर्र्स को प्रारंभ करना था, तो वे या तो स्कोप निष्पादित होने पर हर बार शुरू किया जाएगा, या स्टैक पर कहीं भी रखा जाना चाहिए। मुझे यकीन है कि प्रदर्शन कारणों के लिए यह तरीका है –
@ एंडी थॉमस मुझे नहीं पता कि इसे डुप्लिकेट के रूप में क्यों चिह्नित किया जा रहा है। वह त्रुटि के बारे में नहीं पूछ रहा है (मुझे यकीन है कि वह समझता है कि कैसे ठीक किया जाए)।वह पूछ रहा है कि ऐसा क्यों है, एक प्रश्न जो मैं स्टैक ओवरव्लो –
@ विन्सइमी पर नहीं ढूंढ सकता - काफी मेला, यह एक मोटा मैच था। फिर से खोलने। –