Có , chúng ta có thể khai báo một phương thức khởi tạo là private . Nếu chúng ta khai báo một phương thức khởi tạo là private, chúng ta không thể tạo một đối tượng của một lớp. Chúng tôi có thể sử dụng hàm tạo riêng này trong Mẫu thiết kế Singleton .
Điều kiện đối với mã xây dựng riêng
- Một phương thức khởi tạo riêng không cho phép một lớp được phân lớp.
- Một cấu trúc riêng r không cho phép tạo một đối tượng bên ngoài lớp.
- Nếu tất cả các phương thức hằng có trong lớp của chúng ta, chúng ta có thể sử dụng phương thức khởi tạo riêng.
- Nếu tất cả các phương thức là tĩnh thì chúng ta có thể sử dụng phương thức khởi tạo riêng.
- Nếu chúng tôi cố gắng mở rộng một lớp học đang có hàm tạo riêng sẽ xảy ra lỗi thời gian biên dịch .
Ví dụ
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(); } }
Đầu ra
In a private constructor