Dúvida Simples - Instanciar Objeto

5 respostas
L

Olá, pessoal!

Estou começando a aprender java agora, e estou com uma dúvida, creio que seja bem simples…

É possível instanciar um objeto e ao mesmo tempo já alterar seus atributos, caso ele tenha um construtor apropriado?

Exemplo:

Cliente c = new Cliente("Joana", 27, "endereço");

Em muitos lugares eu vejo sendo feito dessa forma:

Cliente c = new Cliente(); c.nome = "Joana"; c.idade = 27; c.endereco = "Rua B";

Qual dos dois está correto? É possível fazer o primeiro código funcionar?

Obrigado desde já!!

5 Respostas

doravan

Ambas as formas estão corretas.
O primeiro código irá funcionar se você explicitamente criar um construtor para a sua classe.

B

o segundo é melhor

o primeiro, o construtor ficará com assinatura muito grande

além de ter que ficar criando construtor grande para cada objeto

L

Muito obrigado!!

J

Ambos estão corretos.

Se você possuir na sua classe cliente um construtor recebendo parâmetros, é possível fazer da primeira forma.

Exemplo:

public class Cliente{
 private String nome;
 private int idade;
 private String endereco;

 public Cliente(){
 }

 public Cliente(String nome, int idade, String endereco){
  this.nome = nome;
  this.idade = idade;
  this.endereco = endereco;
 }

 public void setNome(String nome){
  this.nome = nome;
 }

 public String getNome(){
  return this.nome;
 }

 public void setIdade(int idade){
  this.idade = idade;
 }

 public int getIdade(){
  return this.idade;
 }

 public void setEndereco(String endereco){
  this.endereco = endereco;
 }

 public String getEndereco(){
  return this.endereco;
 }

}

Tendo esses dois construtores, você poderá instanciar o Cliente das duas maneiras.

Cliente c = new Cliente();
c.setNome("Joana");
c.setIdade(27);
c.setEndereco("endereço");
// ou
Cliente c = new Cliente("Joana", 27, "endereço);
BrunoPeresREAL

Olá.

Acho que é interessante usar construtores com parâmetros quando a existência do objeto é condicionada a uma propriedade. Exemplo: Uma conta de um banco possui um proprietário relacionado e não faz muito sentido uma conta sem um proprietário / cliente relacionado. Então, já no construtor da classe conta eu poderia solicitar o proprietário da mesma.

Claro que muito disso depende da sua regra de negócio.

Att,

Criado 11 de outubro de 2012
Ultima resposta 11 de out. de 2012
Respostas 5
Participantes 5