হ্যাঁ , আমরা একটি নির্মাণকারীকে ব্যক্তিগত হিসাবে ঘোষণা করতে পারি . যদি আমরা একটি কন্সট্রাক্টরকে ব্যক্তিগত হিসাবে ঘোষণা করি তবে আমরা একটি শ্রেণীর একটি বস্তু তৈরি করতে সক্ষম নই। আমরা এই ব্যক্তিগত কনস্ট্রাক্টরটিকে সিঙ্গলটন ডিজাইন প্যাটার্নে ব্যবহার করতে পারি .
প্রাইভেট কনস্ট্রাক্টরের জন্য শর্তাবলী
- একজন প্রাইভেট কনস্ট্রাক্টর একটি ক্লাসকে সাবক্লাস করার অনুমতি দেয় না।
- একটি ব্যক্তিগত নির্মাণ আর ক্লাসের বাইরে কোনো বস্তু তৈরি করার অনুমতি দেয় না।
- যদি আমাদের ক্লাসে সব ধ্রুবক পদ্ধতি থাকে তাহলে আমরা একটি ব্যক্তিগত কনস্ট্রাক্টর ব্যবহার করতে পারি।
- যদি সমস্ত পদ্ধতি স্ট্যাটিক হয় তাহলে আমরা একটি ব্যক্তিগত কনস্ট্রাক্টর ব্যবহার করতে পারি
- যদি আমরা একটি ক্লাস বাড়ানো চেষ্টা করি যেটিতে ব্যক্তিগত কনস্ট্রাক্টর আছে কম্পাইল টাইম ত্রুটি ঘটবে .
উদাহরণ
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