Queria saber qual o motivo e cenários que é vantajoso ter mais de um construtor em uma classe Java?
Queria saber qual o motivo e cenários que é vantajoso ter mais de um construtor em uma classe Java?
Fala Gabriel, tudo certo?
A sobrecarga de construtores é bem útil justamente quando queremos que um objeto possa ser criado de maneiras diferentes, por exemplo vamos imaginar uma classe Pessoa com os seguintes atributos:
class Pessoa{
private String nome;
private String cpf;
private String telefone;
private String endereco;
}
Mas que na verdade o campo telefone é opcional. Sendo obrigatórios todos os outros. Nesse caso, podemos utilizar dois construtores:
// um que recebe todos os atributos
public Pessoa(String nome, String cpf, String telefone, String endereco){
this.nome = nome;
this.cpf = cpf;
this.telefone = telefone;
this.endereco = endereco;
}
// e um que não recebe o telefone
public Pessoa(String nome, String cpf, String endereco){
this.nome = nome;
this.cpf = cpf;
this.endereco = endereco;
}
É claro que em uma situação do mundo real vão existir verificações de entrada e tudo mais, mas o foco central é que o objeto pode ser iniciado tendo ou não telefone e nesse caso nós poderíamos tratar isso de duas maneiras: com um novo construtor, que não recebe esse atributo, ou passando null
para o atributo endereco no construtor.
Em geral, a sobrecarga de construtor e de métodos serve para quando queremos executar diferentes trechos de código baseado no tipo de parâmetro que o método recebe.
Em caso de dúvidas, estou à disposição.
Um grande abraço e bons estudos!