हां , हम एक निर्माता को निजी . घोषित कर सकते हैं . अगर हम कंस्ट्रक्टर को प्राइवेट घोषित करते हैं तो हम क्लास का ऑब्जेक्ट नहीं बना सकते। हम इस निजी कंस्ट्रक्टर का उपयोग सिंगलटन डिज़ाइन पैटर्न . में कर सकते हैं ।
निजी कंस्ट्रक्टर के लिए शर्तें
- एक निजी निर्माता किसी वर्ग को उपवर्गित करने की अनुमति नहीं देता है।
- एक निजी निर्माण आर कक्षा के बाहर कोई वस्तु बनाने की अनुमति नहीं देता है।
- यदि हमारी कक्षा में सभी स्थिर विधियाँ हैं तो हम एक निजी निर्माणकर्ता . का उपयोग कर सकते हैं
- यदि सभी विधियां स्थिर हैं तब हम एक निजी कंस्ट्रक्टर का उपयोग कर सकते हैं।
- यदि हम कक्षा का विस्तार करने का प्रयास करते हैं जिसमें निजी कंस्ट्रक्टर है संकलन समय त्रुटि होगी ।
उदाहरण
class SingletonObject { private SingletonObject() { System.out.println("In a private constructor"); } public static SingletonObject getObject() { // we can call this constructor if (ref == null) ref = new SingletonObject(); return ref; } private static SingletonObject ref; } public class PrivateConstructorDemo { public static void main(String args[]) { SingletonObject sObj = SingletonObject.getObject(); } }
आउटपुट
In a private constructor