Trong ví dụ này, chúng ta sẽ học cách triển khai các hàm tạo riêng trong Java.
Để hiểu ví dụ này, bạn nên có kiến thức về các chủ đề lập trình Java sau:
- Trình tạo Java
- Java Singleton
Ví dụ 1: Chương trình Java để tạo một phương thức khởi tạo riêng
class Test ( // create private constructor private Test () ( System.out.println("This is a private constructor."); ) // create a public static method public static void instanceMethod() ( // create an instance of Test class Test obj = new Test(); ) ) class Main ( public static void main(String() args) ( // call the instanceMethod() Test.instanceMethod(); ) )
Đầu ra
Đây là một phương thức khởi tạo riêng.
Trong ví dụ trên, chúng ta đã tạo một phương thức khởi tạo riêng của Test
lớp. Do đó, chúng ta không thể tạo một đối tượng của Test
lớp bên ngoài lớp.
Đây là lý do tại sao chúng ta đã tạo một public static
phương thức có tên instanceMethod()
bên trong lớp được sử dụng để tạo một đối tượng của lớp Test. Và từ Main
lớp, chúng ta gọi phương thức bằng cách sử dụng tên lớp.
Ví dụ 2: Thiết kế Java Singleton sử dụng phương thức khởi tạo riêng
Mẫu thiết kế Java Singleton đảm bảo rằng chỉ nên có một thể hiện của một lớp. Để đạt được điều này, chúng tôi sử dụng hàm tạo riêng.
class Language ( // create a public static variable of class type private static Language language; // private constructor private Language() ( System.out.println("Inside Private Constructor"); ) // public static method public static Language getInstance() ( // create object if it's not already created if(language == null) ( language = new Language(); ) // returns the singleton object return language; ) public void display() ( System.out.println("Singleton Pattern is achieved"); ) ) class Main ( public static void main(String() args) ( Language db1; // call the getInstance method db1= Language.getInstance(); db1.display(); ) )
Đầu ra
Inside Private Constructor Singleton Pattern đạt được
Trong ví dụ trên, chúng ta đã tạo một lớp có tên là Languages. Lớp chứa,
- ngôn ngữ -
private
biến kiểu lớp - Ngôn ngữ () - hàm
private
tạo - getInstance () -
public static
phương thức kiểu lớp public
phương thức display () -
Vì hàm tạo private
, chúng ta không thể tạo các đối tượng của Ngôn ngữ từ lớp bên ngoài. Do đó, chúng ta đã tạo một đối tượng của lớp bên trong getInstance()
phương thức.
Tuy nhiên, chúng tôi đã đặt điều kiện theo cách chỉ một đối tượng được tạo. Và, phương thức trả về đối tượng.
Lưu ý dòng,
db1 = Language.getInstance();
Đây,
- db1 là một biến kiểu Ngôn ngữ
- Language.getInstance () - gọi phương thức
getInstance()
Vì, getInstance()
trả về đối tượng của lớp Ngôn ngữ, biến db1 được gán với đối tượng được trả về.
Cuối cùng, chúng ta đã gọi display()
phương thức bằng cách sử dụng đối tượng.