Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

เราสามารถประกาศตัวสร้างเป็นแบบส่วนตัวใน Java ได้หรือไม่?


ใช่ เราสามารถประกาศ ตัวสร้างเป็นแบบส่วนตัว . หากเราประกาศตัวสร้างเป็นแบบส่วนตัว เราไม่สามารถสร้างวัตถุของคลาสได้ เราสามารถใช้ตัวสร้างส่วนตัวนี้ใน รูปแบบการออกแบบซิงเกิลตัน .

เงื่อนไขสำหรับผู้สร้างส่วนตัว

  • 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