Olá Maurício, tudo bem ?
Resposta rápida
Sim, o construtor pode ser privado.
Contexto
Isso é comum quando você quer controlar a criação de instâncias de uma classe, por exemplo, em padrões de projeto como o Singleton, você quer garantir que apenas uma instância de uma classe seja criada.
Claro que para isso você precisará criar um método que cria a instância ou retorna uma já criada caso necessário
O exemplo abaixo mostra esse caso
public class Singleton {
private static Singleton instancia; // Variável estática para armazenar a única instância
private Singleton() {
// Construtor privado para evitar criação de instâncias externas
System.out.println("Instância única criada!");
}
public static Singleton getInstancia() {
// Método público para obter a instância
// Verifica se já existe uma instância. Caso não, cria a instância.
if (instancia == null) {
instancia = new Singleton();
}
return instancia;
}
}
public class TesteSingleton {
public static void main(String[] args) {
// Obtendo a única instância do Singleton
Singleton s1 = Singleton.getInstancia();
Singleton s2 = Singleton.getInstancia();
// Verificando se as instâncias são a mesma
System.out.println(s1 == s2);
Por enquanto, não precisa se preocupar tanto, mas no futuro quando for estudar padrões de projeto isso poderá se tornar mais claro
Espero ter ajudado!
Se foi o caso pode encerrar esse tópico no botão de solução !
Caso tenha mais dúvidas só mandar!