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

जावा में स्टेटिक कंट्रोल फ्लो

स्टेटिक कंट्रोल फ्लो स्टेटिक मेंबर्स की पहचान करता है, स्टेटिक ब्लॉक्स को निष्पादित करता है, और फिर स्टेटिक मुख्य मेथड को निष्पादित करता है।

उदाहरण

public class Demo { 
    static int a = 97; 
    
    public static void main(String[] args) { 
        print(); 
        System.out.println("मुख्य मेथड निष्पादन पूरा हुआ"); 
    } 
    
    static { 
        System.out.println(a); 
        print(); 
        System.out.println("हम पहले स्टेटिक ब्लॉक में हैं"); 
    } 
    
    public static void print() { 
        System.out.println(b); 
    } 
    
    static { 
        System.out.println("हम दूसरे स्टेटिक ब्लॉक में हैं"); 
    } 
    
    static int b = 899; 
}

आउटपुट

97 
0 
हम पहले स्टेटिक ब्लॉक में हैं 
हम दूसरे स्टेटिक ब्लॉक में हैं 
899 
मुख्य मेथड निष्पादन पूरा हुआ

व्याख्या: Demo नामक एक क्लास में एक स्टेटिक वेरिएबल, और एक मुख्य फंक्शन होता है, जहां 'print' फंक्शन को कॉल किया जाता है। एक अन्य स्टेटिक ब्लॉक पहले से परिभाषित स्टेटिक वेरिएबल को प्रिंट करता है और 'print' फंक्शन को फिर से कॉल करता है। एक अन्य स्टेटिक 'print' फंक्शन परिभाषित होता है, जो दूसरे वेरिएबल को प्रिंट करता है। फिर एक और स्टेटिक ब्लॉक परिभाषित होता है, जो प्रासंगिक संदेश प्रिंट करता है। इन सभी स्टेटिक कोड ब्लॉक्स के बाहर, एक और स्टेटिक इंटीजर परिभाषित होता है।

स्टेटिक इनिशियलाइज़ेशन क्रम:

  1. स्टेटिक फील्ड्स को डिफ़ॉल्ट मानों पर आरंभ किया जाता है (int=0, boolean=false, ref=null)
  2. स्टेटिक फील्ड इनिशियलाइज़र्स और स्टेटिक ब्लॉक्स को टेक्स्ट क्रम में (ऊपर से नीचे) निष्पादित किया जाता है
  3. मुख्य मेथड निष्पादित होता है

उदाहरण में चरण-दर-चरण:

1. static int a = 97;        // a = 97
2. static int b;             // b = 0 (डिफ़ॉल्ट)
3. static {                  // पहला स्टेटिक ब्लॉक
      println(a);    // 97
      print();       // b प्रिंट करता है (0)
      println("पहला ब्लॉक");
   }
4. static {                  // दूसरा स्टेटिक ब्लॉक
      println("दूसरा ब्लॉक");
   }
5. static int b = 899;       // b = 899
6. main()                    // मुख्य मेथड
      print();       // b प्रिंट करता है (899)
      println("मुख्य पूरा")

मुख्य नियम:

  • स्टेटिक मेंबर्स को उनके घोषणा क्रम में आरंभ किया जाता है
  • फॉरवर्ड रेफरेंसिंग की अनुमति है (बाद में घोषित वेरिएबल का उपयोग)
  • लेकिन फॉरवर्ड रीडिंग डिफ़ॉल्ट मान देती है (ऊपर b=0 देखें)
  1. - क्या हम Java में स्टैटिक कंस्ट्रक्टर परिभाषित कर सकते हैं?

    नहीं, हम Java में स्टैटिक कंस्ट्रक्टर परिभाषित नहीं कर सकते, यदि हम static कीवर्ड के साथ कंस्ट्रक्टर को परिभाषित करने का प्रयास करते हैं तो कंपाइल-टाइम एरर होगा। सामान्य तौर पर, static का अर्थ क्लास लेवल होता है। एक कंस्ट्रक्टर का उपयोग इंस्टेंस वेरिएबल्स के लिए प्रारंभिक मान असाइन करने के लिए किया

  1. - Java 8 में इंटरफेस में स्टेटिक मेथड्स

    Java 8 से, एक इंटरफेस में स्टेटिक हेल्पर मेथड्स भी हो सकते हैं। public interface Vehicle { default void print() { System.out.println(I am a vehicle!); } static void blowHorn() { System.out.println(Blowing horn!!!); } } उदाहरण public class Java8Tester { pub

  1. - Java कंट्रोल फ्लो में महारत हासिल करें: If…Else और Switch स्टेटमेंट्स समझाया गया

    Java में, प्रोग्राम के फ्लो को नियंत्रित करने के कई तरीके हैं। कंट्रोल फ्लो स्टेटमेंट्स, निर्णय लेने वाले स्टेटमेंट्स को लागू करके एक्जीक्यूशन के फ्लो को बदलते या तोड़ते हैं। Java में निर्णय लेने वाले स्टेटमेंट्स हैं: if स्टेटमेंट if...else स्टेटमेंट switch स्टेटमेंट यह पोस्ट Java कंट्रोल फ्लो स्ट