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

क्या हम जावा में डिफॉल्ट कंस्ट्रक्टर में स्टैटिक वेरिएबल्स को इनिशियलाइज़ कर सकते हैं?

कक्षा/स्थैतिक चर एक वर्ग से संबंधित होते हैं, उदाहरण चर की तरह ही उन्हें किसी वर्ग के भीतर, किसी भी विधि के बाहर, लेकिन स्थिर कीवर्ड के साथ घोषित किया जाता है।

वे संकलन समय पर उपयोग करने के लिए उपलब्ध हैं, आप कक्षा को इंस्टेंट करने से पहले/बिना उन तक पहुंच सकते हैं, पूरे वर्ग में स्थिर क्षेत्र की केवल एक प्रति उपलब्ध है यानी स्थिर क्षेत्र का मूल्य सभी वस्तुओं में समान होगा। आप स्थिर कीवर्ड का उपयोग करके एक स्थिर फ़ील्ड को परिभाषित कर सकते हैं।

यदि आप किसी वर्ग में एक स्थिर चर घोषित करते हैं, यदि आपने इसे प्रारंभ नहीं किया है, तो ठीक वैसे ही जैसे आवृत्ति चर के साथ संकलक इन्हें डिफ़ॉल्ट कन्स्ट्रक्टर में डिफ़ॉल्ट मानों के साथ प्रारंभ करता है।

हाँ, आप इन मानों को कंस्ट्रक्टर का उपयोग करके इनिशियलाइज़ भी कर सकते हैं।

उदाहरण

public class DefaultExample {
   static String name;
   static int age;
   DefaultExample() {
      name = "Krishna";
      age = 25;
   }
   public static void main(String args[]) {
      new DefaultExample();
      System.out.println(DefaultExample.name); System.out.println(DefaultExample.age);
   }
}

आउटपुट

Krishna
25

अंतिम और स्थिर घोषित करना

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

उदाहरण

public class DefaultExample {
   static final String name;
   static final int age;
   public static void main(String args[]) {
      new DefaultExample();
      System.out.println(DefaultExample.name); System.out.println(DefaultExample.age);
   }
}

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

DefaultExample.java:2: error: variable name not initialized in the default constructor
   static final String name;
            ^
DefaultExample.java:3: error: variable age not initialized in the default constructor
   static final int age;
^
2 errors

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

उदाहरण

public class DefaultExample {
   static final String name;
   static final int age;
   DefaultExample() {
      name = "Krishna";
      age = 25;
   }
   public static void main(String args[]) {
      new DefaultExample();
      System.out.println(DefaultExample.name);
      System.out.println(DefaultExample.age);
   }
}

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

OutputDeviceAssignedDefaultExample.java:5: error: cannot assign a value to final variable name
   name = "Krishna";
   ^
DefaultExample.java:6: error: cannot assign a value to final variable age
   age = 25;
   ^
2 errors

  1. क्या कोई कंस्ट्रक्टर जावा में अपवाद फेंक सकता है?

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

  1. जावा में डिफ़ॉल्ट रूप से इंटरफ़ेस चर स्थिर और अंतिम होते हैं, क्यों?

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

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

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