Các lớp tiện ích chỉ sử dụng phương thức và trường tĩnh nên ngăn chặn việc khởi tạo thể hiện, và việc này được thực hiện bằng cách sử dụng hàm tạo private.
Lớp trừu tượng không thể ngăn chặn việc khởi tạo thể hiện, do đó, hàm tạo của lớp tiện ích được khai báo là private để chặn quyền truy cập từ bên ngoài.
Hàm tạo private nên được kèm theo chú thích để người dùng dễ hiểu, đồng thời ngăn chặn khả năng kế thừa để làm rõ mục đích của lớp.
Đôi khi, việc sử dụng các lớp chỉ chứa các phương thức tĩnh và trường tĩnh sẽ rất hữu ích.
Ví dụ điển hình, bạn có thể sử dụng các lớp tiện ích như java.lang.Math, java.util.Arrays, chúng chứa các phương thức liên quan đến phép toán học hoặc mảng. Hoặc bạn có thể sử dụng java.util.Collections, chứa các phương thức factory tĩnh để tạo ra các đối tượng triển khai một giao diện cụ thể.
Các lớp tiện ích này không cần các biến hoặc phương thức instance, vì vậy chúng không cần constructor. Tuy nhiên, nếu bạn không khai báo constructor, compiler sẽ tự động tạo một constructor public mặc định. Điều này khiến người dùng không thể phân biệt được constructor này được tạo tự động hay không.
Để ngăn chặn điều này, đôi khi người ta tạo lớp tiện ích thành lớp trừu tượng. Tuy nhiên, lớp trừu tượng không thể ngăn chặn việc khởi tạo instance. Bởi vì bạn vẫn có thể tạo lớp con và khởi tạo instance của nó.
Do đó, để ngăn chặn việc khởi tạo instance của lớp tiện ích, bạn cần đặt access modifier của constructor thành private.
Như vậy, nếu access modifier của constructor mặc định là private, thì bên ngoài lớp không thể truy cập được. Ngoài ra, nếu constructor mặc định được gọi từ bên trong, nó sẽ ném ra exception để ngăn chặn việc khởi tạo.
Việc sử dụng constructor private có thể khiến người dùng khó hiểu, vì vậy bạn nên thêm chú thích để giải thích. Lưu ý rằng việc đặt constructor thành private cũng sẽ khiến lớp không thể được kế thừa.