नहीं, हम Java में स्टैटिक कंस्ट्रक्टर परिभाषित नहीं कर सकते, यदि हम static कीवर्ड के साथ कंस्ट्रक्टर को परिभाषित करने का प्रयास करते हैं तो कंपाइल-टाइम एरर होगा।
सामान्य तौर पर, static का अर्थ क्लास लेवल होता है। एक कंस्ट्रक्टर का उपयोग इंस्टेंस वेरिएबल्स के लिए प्रारंभिक मान असाइन करने के लिए किया जाता है। स्टैटिक और कंस्ट्रक्टर दोनों एक-दूसरे से अलग और विपरीत हैं। हमें इंस्टेंस वेरिएबल के लिए प्रारंभिक मान असाइन करने के लिए कंस्ट्रक्टर का उपयोग करना चाहिए। हमें स्टैटिक वेरिएबल्स असाइन करने के लिए स्टैटिक ब्लॉक्स का उपयोग करना चाहिए।
उदाहरण
public class StaticConstructorTest {
int x = 10;
// स्टैटिक कंस्ट्रक्टर की घोषणा
static StaticConstructorTest() {
System.out.println("Static Constructor");
}
public static void main(String args[]) {
StaticConstructorTest sct = new StaticConstructorTest();
}
}
ऊपर के उदाहरण में, हमने एक स्टैटिक कंस्ट्रक्टर बनाया है। कोड कंपाइल नहीं होता और यह एरर थ्रो करता है कि modifier static not allowed here।
आउटपुट
StaticConstructorTest.java:4: error: modifier static not allowed here
स्टैटिक इनिशियलाइज़ेशन के लिए static { ... } ब्लॉक का उपयोग करें।