Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Computando total de clientes com construtores diferentes

Bom dia. Minha dúvida pe a seguinte. Considerando o caso que eu queira ter a quantidade de clientes instanciados, o correto seria fazer a seguinte abordagem:

public class Cliente {
    //Atributos da classe
    private static long totalClientes;
    //Atributos da instancia
    private String nome;
    private String cpf;
    private String profissao;

    //Construtores

    public Cliente() {
        //Incrementa quantidade de clientes
        totalClientes ++;
    }

Caso minha classe aceite um construtor vazio e um construtor com parâmetros, eu tenho que fazer o incremento de quantidade de clientes em ambos construtores?

1 resposta
solução!

Oi Rafael.

Exatamente, se você quiser contar as vezes que o objeto foi instanciado, seja o construtor com ou sem parâmetro, é necessário incrementar em ambos. Veja um exemplo:

public class TotalClientesInstanciados {

    private static long totalClientes;

    public TotalClientesInstanciados() {
        //Incrementa quantidade de clientes
        totalClientes ++;
    }

    public TotalClientesInstanciados(String umParametroQualquer) {
        //Incrementa quantidade de clientes
        totalClientes ++;
    }

    public static void main(String[] args) {
        TotalClientesInstanciados totalClientesInstanciados  = new TotalClientesInstanciados();
        TotalClientesInstanciados totalClienteSemParametro = new TotalClientesInstanciados();
        TotalClientesInstanciados totalClienteComParametro = new TotalClientesInstanciados("qualquercoisa");

        System.out.println(totalClientesInstanciados);
    }

    @Override
    public String toString() {
        return Long.valueOf(totalClientes).toString();
    }
}

O resultado será 3.