ใช่ เราสามารถประกาศ ตัวสร้างเป็นแบบส่วนตัว . หากเราประกาศตัวสร้างเป็นแบบส่วนตัว เราไม่สามารถสร้างวัตถุของคลาสได้ เราสามารถใช้ตัวสร้างส่วนตัวนี้ใน รูปแบบการออกแบบซิงเกิลตัน .
เงื่อนไขสำหรับผู้สร้างส่วนตัว
- A ตัวสร้างส่วนตัว ไม่อนุญาตให้มีคลาสย่อย
- A คอนสตรัคโตส่วนตัว ร ไม่อนุญาตให้สร้างวัตถุนอกชั้นเรียน
- หากมีเมธอดคงที่ทั้งหมดในคลาสของเรา เราก็สามารถใช้ ตัวสร้างส่วนตัว
- หากวิธีการทั้งหมด คงที่ เราก็สามารถใช้ ตัวสร้างส่วนตัว
- ถ้าเราพยายาม ขยายคลาส ซึ่งมีตัวสร้างส่วนตัว ข้อผิดพลาดเวลาคอมไพล์จะเกิดขึ้น .
ตัวอย่าง
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