1
resposta

[Dúvida] Construtor

Olá boa noite, como estão ? pergunta a) o construtor pode ser privado ? pergunta b) posso criar um construtor para receber ou não um parâmetro (é parâmetro ou argumento que se diz ? outra dúvida, rsrs)? ou seja, um construtor com parâmetro opcional? pergunta c) posso ter mais de um construtor na classe ?

obrigado, Maurício G

1 resposta

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!