Trong bài viết này, chúng ta sẽ tìm hiểu cách triển khai constructor private (hàm tạo riêng tư). Constructor private cho phép hạn chế việc khởi tạo đối tượng của một lớp.
Dưới đây là minh họa:
Đầu vào
Giả sử đầu vào của chúng ta là:
Chạy chương trình
Đầu ra
Đầu ra mong muốn sẽ là:
Constructor private đang được gọi
Thuật Toán
Bước 1 - BẮT ĐẦU Bước 2 - Định nghĩa constructor private sử dụng từ khóa 'private' Bước 3 - Làm constructor private đảm bảo không thể tạo đối tượng của lớp đó Bước 4 - Constructor private có thể dùng với các hàm static bên trong cùng lớp Bước 5 - Constructor private thường dùng trong mẫu thiết kế Singleton Bước 6 - Trong phương thức main, dùng câu lệnh in để gọi phương thức static Bước 7 - Nó hiển thị đầu ra trên bảng điều khiển
Ví Dụ 1
Ở đây, đầu vào được nhập bởi người dùng dựa trên nhắc nhở.
class PrivateConstructor {
private PrivateConstructor() {
System.out.println("Một constructor private đang được gọi.");
}
public static void instanceMethod() {
PrivateConstructor my_object = new PrivateConstructor();
}
}
public class Main {
public static void main(String[] args) {
System.out.println("Gọi constructor private");
PrivateConstructor.instanceMethod();
}
}
Đầu Ra
Gọi constructor private Một constructor private đang được gọi.
Ví Dụ 2
Ở đây, một constructor private được gọi và một instance được tạo (mẫu Singleton).
import java.io.*;
class PrivateConstructor {
static PrivateConstructor instance = null;
public int my_input = 10;
private PrivateConstructor() {
}
static public PrivateConstructor getInstance() {
if (instance == null)
instance = new PrivateConstructor();
return instance;
}
}
public class Main {
public static void main(String args[]) {
PrivateConstructor a = PrivateConstructor.getInstance();
PrivateConstructor b = PrivateConstructor.getInstance();
a.my_input = a.my_input + 10;
System.out.println("Gọi constructor private");
System.out.println("Giá trị instance đầu tiên = " + a.my_input);
System.out.println("Giá trị instance thứ hai = " + b.my_input);
}
}
Đầu Ra
Gọi constructor private Giá trị instance đầu tiên = 20 Giá trị instance thứ hai = 20