"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > जावा अप्रारंभीकृत स्थानीय वेरिएबल्स के लिए त्रुटि क्यों उत्पन्न करता है, लेकिन अप्रारंभीकृत इंस्टेंस वेरिएबल्स के लिए नहीं?

जावा अप्रारंभीकृत स्थानीय वेरिएबल्स के लिए त्रुटि क्यों उत्पन्न करता है, लेकिन अप्रारंभीकृत इंस्टेंस वेरिएबल्स के लिए नहीं?

2024-11-22 को प्रकाशित
ब्राउज़ करें:650

Why Does Java Raise an Error for Uninitialized Local Variables but Not for Uninitialized Instance Variables?

जावा में अप्रारंभीकृत वेरिएबल और सदस्य

निम्नलिखित स्निपेट पर विचार करें:

public class TestClass {

    private String a;
    private String b;

    public TestClass() {
        a = "initialized";
    }

    public void doSomething() {
        String c;

        a.notify(); // This is fine
        b.notify(); // This is fine - but will end in an exception
        c.notify(); // "Local variable c may not have been initialized"
    }
}

यद्यपि "बी" और "सी" दोनों अप्रारंभीकृत हैं, कंपाइलर "सी" के लिए एक संकलन-समय त्रुटि उत्पन्न करता है, लेकिन "बी" के लिए नहीं। यह अंतर इंस्टेंस वेरिएबल्स और स्थानीय वेरिएबल्स को प्रारंभ करने के लिए भाषा के नियमों से उत्पन्न होता है।

ऑब्जेक्ट प्रकार (जैसे "ए" और "बी") के इंस्टेंस वेरिएबल्स को स्पष्ट रूप से प्रारंभ नहीं किए जाने पर डिफ़ॉल्ट रूप से शून्य में प्रारंभ किया जाता है। यही कारण है कि "b.notify()" तक पहुंचने से तत्काल त्रुटि नहीं होती है, क्योंकि यह प्रभावी रूप से "null.notify()" के बराबर है। हालाँकि, जब कोड निष्पादित होता है तो यह एक्सेस अंततः एक NullPointerException को ट्रिगर करेगा।

इसके विपरीत, ऑब्जेक्ट प्रकार के स्थानीय चर डिफ़ॉल्ट रूप से प्रारंभ नहीं किए जाते हैं। "सी" जैसे अप्रारंभीकृत स्थानीय चर तक पहुंचने का प्रयास करने पर सीधे संकलन-समय त्रुटि उत्पन्न होती है। यह सख्त आवश्यकता यह सुनिश्चित करती है कि उपयोग किए जाने से पहले स्थानीय चर को हमेशा ठीक से प्रारंभ किया जाता है।

विज्ञप्ति वक्तव्य इस लेख को पुन: पेश किया गया है: 1729738619 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] पर संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3