स्टेटिक मेथड्स
- नॉन-स्टेटिक सदस्यों को एक्सेस नहीं कर सकते (इंस्टेंस वेरिएबल/मेथड्स) - कोई
this संदर्भ नहीं। this और super का उपयोग नहीं कर सकते।- केवल स्टेटिक डेटा एक्सेस कर सकते हैं।
- ओवरराइड नहीं किए जा सकते - केवल छिपाए जा सकते हैं (मेथड हाइडिंग)।
- स्टेटिक मेथड्स से चेक्ड अपवाद फेंके जा सकते हैं।
स्टेटिक ब्लॉक्स
- कुछ भी रिटर्न नहीं कर सकते।
- स्पष्ट रूप से आह्वान नहीं किए जा सकते - क्लास लोडिंग पर स्वचालित रूप से चलते हैं।
- अपवादों को आंतरिक रूप से try-catch में संभालना चाहिए - चेक्ड अपवाद नहीं फेंक सकते।
this/super का उपयोग नहीं कर सकते।- घोषणा क्रम में निष्पादित होते हैं - गतिशील क्रम नियंत्रण नहीं।
उदाहरण
public class StaticDemo {
static int count = 0;
static {
System.out.println("Static block 1");
count = 10;
}
static {
System.out.println("Static block 2: count = " + count);
}
public static void staticMethod() {
System.out.println("Static method: count = " + count);
// System.out.println(instanceVar); // त्रुटि: नॉन-स्टेटिक एक्सेस नहीं कर सकते
}
public static void main(String[] args) {
staticMethod();
}
}आउटपुट
Static block 1
Static block 2: count = 10
Static method: count = 10