हां , हम एक निर्माता को निजी . घोषित कर सकते हैं . अगर हम कंस्ट्रक्टर को प्राइवेट घोषित करते हैं तो हम क्लास का ऑब्जेक्ट नहीं बना सकते। हम इस निजी कंस्ट्रक्टर का उपयोग सिंगलटन डिज़ाइन पैटर्न . में कर सकते हैं ।
निजी कंस्ट्रक्टर के लिए शर्तें
- एक निजी निर्माता किसी वर्ग को उपवर्गित करने की अनुमति नहीं देता है।
- एक निजी निर्माण आर कक्षा के बाहर कोई वस्तु बनाने की अनुमति नहीं देता है।
- यदि हमारी कक्षा में सभी स्थिर विधियाँ हैं तो हम एक निजी निर्माणकर्ता . का उपयोग कर सकते हैं
- यदि सभी विधियां स्थिर हैं तब हम एक निजी कंस्ट्रक्टर का उपयोग कर सकते हैं।
- यदि हम कक्षा का विस्तार करने का प्रयास करते हैं जिसमें निजी कंस्ट्रक्टर है संकलन समय त्रुटि होगी ।
उदाहरण
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