Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

Java में ब्लैंक फाइनल वेरिएबल को सभी कंस्ट्रक्टर में स्पष्ट रूप से आरंभ क्यों करना पड़ता है?

एक ब्लैंक फाइनल वेरिएबल वह final वेरिएबल है जिसे घोषणा पर आरंभ नहीं किया गया है। इसे प्रत्येक कंस्ट्रक्टर में स्पष्ट रूप से आरंभ किया जाना चाहिए क्योंकि:

  • कंपाइलर ब्लैंक फाइनल के लिए डिफ़ॉल्ट मान प्रदान नहीं करता।
  • प्रत्येक कंस्ट्रक्टर पथ को मान असाइन करना होगा।
  • चूकने पर संकलन त्रुटि: "variable might not have been initialized"

उदाहरण: त्रुटि

public class Student {
    public final String name; // ब्लैंक फाइनल
    public void display() {
        System.out.println("Name: " + this.name);
    }
    public static void main(String args[]) {
        new Student().display(); // संकलन त्रुटि
    }
}

संकलन त्रुटि

Student.java:3: error: variable name not initialized in the default constructor
    public final String name;
    ^

सही: सभी कंस्ट्रक्टर में आरंभीकरण

public class Student {
    public final String name;

    public Student() {
        this.name = "Raju"; // कंस्ट्रक्टर 1
    }

    public Student(String name) {
        this.name = name; // कंस्ट्रक्टर 2
    }

    public void display() {
        System.out.println("Name: " + this.name);
    }

    public static void main(String args[]) {
        new Student().display();
        new Student("Radha").display();
    }
}

आउटपुट

Name of the Student: Raju
Name of the Student: Radha

सर्वोत्तम अभ्यास

  • संभव हो तो घोषणा पर आरंभ करें।
  • एकाधिक कंस्ट्रक्टर के लिए, सामान्य आरंभीकरण के लिए एक निजी हेल्पर विधि या this() चेनिंग का उपयोग करें।
  1. - Java में Final Variable

    एक final वेरिएबल को केवल एक बार स्पष्ट रूप से इनिशियलाइज़ किया जा सकता है। final घोषित एक रेफरेंस वेरिएबल को कभी भी किसी अलग ऑब्जेक्ट को संदर्भित करने के लिए पुनः असाइन नहीं किया जा सकता।हालांकि, ऑब्जेक्ट के भीतर डेटा को बदला जा सकता है। इसलिए, ऑब्जेक्ट की स्थिति बदली जा सकती है लेकिन रेफरेंस नहीं।व

  1. - Java में final कीवर्ड

    final Java एलिमेंट्स के लिए एक नॉन-एक्सेस मॉडिफायर है। final मॉडिफायर का उपयोग क्लासेज, मेथड्स और वेरिएबल्स के कार्यान्वयन को अंतिम रूप देने के लिए किया जाता है।Final Variablesएक final वेरिएबल को केवल एक बार स्पष्ट रूप से इनिशियलाइज़ किया जा सकता है। final घोषित एक रेफरेंस वेरिएबल को कभी भी किसी अलग

  1. मुफ्त वेबसाइटों से हर कीमत पर बचना चाहिए: यहां जानें क्यों मुफ्त वेबसाइटों से हर कीमत पर बचना चाहिए: यहां जानें क्यों

    धोखा न खाएं: तथाकथित मुफ्त वेबसाइटें एक बुरा सपना साबित हो सकती हैं। आप सोच सकते हैं कि अपनी वेब होस्टिंग के लिए पैसे न देकर आप कई समस्याओं से बच रहे हैं – खासकर उस खर्च से जो आपको लगता है कि आप वहन नहीं कर सकते। लेकिन आप भुगतान करेंगे, बस उस तरीके से नहीं जैसा आपने सोचा था। आप भुगतान करेंगे जब आपक