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

जावा एक निर्माता में स्थिर अंतिम चर के आरंभीकरण की अनुमति क्यों नहीं देगा?

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

उदाहरण

class Data {
   static final int num;
   Data(int i) {
      num = i;
   }
}
public class ConstantsExample {
   public static void main(String args[]) {
      System.out.println("value of the constant: "+Data.num);
   }
}

संकलन समय त्रुटि

ConstantsExample.java:4: error: cannot assign a value to final variable num
   num = i;
   ^
1 error

इस प्रोग्राम को काम करने के लिए आपको स्टैटिक ब्लॉक में अंतिम स्टैटिक वैरिएबल को -

. के रूप में इनिशियलाइज़ करना होगा

उदाहरण

class Data {
   static final int num;
   static {
      num = 1000;
   }
}
public class ConstantsExample {
   public static void main(String args[]) {
      System.out.println("value of the constant: "+Data.num);
   }
}

आउटपुट

value of the constant: 1000

  1. क्या हम जावा में रिक्त अंतिम चर प्रारंभ कर सकते हैं?

    हां! आप कंस्ट्रक्टर या इंस्टेंस इनिशियलाइज़ेशन ब्लॉक में एक खाली फ़ाइनल वैरिएबल को इनिशियलाइज़ कर सकते हैं।

  1. जावा में कंस्ट्रक्टर फाइनल क्यों नहीं हो सकता

    अंतिम कीवर्ड एक विधि को ओवरराइड होने से रोकता है। एक कंस्ट्रक्टर को ओवरराइड नहीं किया जा सकता है, जावा इसे अंतिम रूप से चिह्नित करने की अनुमति नहीं देता है।

  1. जावा में अंतिम चर

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