Adicionar objeto numa lista

Pessoal, primeira desculpem-me pela pergunta sem noção, mas fiquei curioso em saber se existe algum nome técnico para a situação abaixo. Quando eu crio um objeto e adiciono o mesmo na minha lista. Ou não tem nada a ver? :slight_smile:


List<Livro> listaDeLivros = new ArrayList<Livro>();
listaDeLivros.add(new Livro("Servlets & JSP", "Kathy Sierra & Bert Bates"));

Para tentar explicitar melhor, no lugar de fazer isso:

List<Livro> listaDeLivros = new ArrayList<Livro>();

Livro livro = new Livro();
livro.setTitle("Servlets & JSP");
livro.setAuthor("Kathy Sierra & Bert Bates");
listaDeLivros.add(livro); 

[quote=norbAns]Pessoal, primeira desculpem-me pela pergunta sem noção, mas fiquei curioso em saber se existe algum nome técnico para a situação abaixo. Quando eu crio um objeto e adiciono o mesmo na minha lista. Ou não tem nada a ver? :slight_smile:


List<Livro> listaDeLivros = new ArrayList<Livro>();
listaDeLivros.add(new Livro("Servlets & JSP", "Kathy Sierra & Bert Bates"));

Para tentar explicitar melhor, no lugar de fazer isso:

[code]
List listaDeLivros = new ArrayList();

Livro livro = new Livro();
livro.setTitle(“Servlets & JSP”);
livro.setAuthor(“Kathy Sierra & Bert Bates”);
listaDeLivros.add(livro);
[/code][/quote]

norbAns, Achei confusa sua pergunta, entendi de duas formas, vou “tentar” explicar:

1 - As duas formas possuem a mesma lógica, não existem nenhum nome diferente para isso. Vc nas duas formas cria o objeto e adiciona à lista. Para o método listaDeLivros.add(objeto) não importa a forma como foram criados, o importante é receber um objeto como argumento e isso foi feito.

2 - A única coisa diferente foi apenas que na 1° forma o construtor é chamado de forma explícita.
Na 2° de forma implícita e vc usa os setters do objeto(setTitle e setAuthor) para informar o título e autor da obra respectivamente.

Neste caso temos 2 construtores que possuem assinaturas diferentes. Isso tem um nome técnico, chama-se Sobrecarga.

Não sei se foi isso que vc quis saber.

[]s

Obrigado.

Minha pergunta foi bem confusa mesmo, mas mesmo assim você conseguiu responder. :slight_smile:

Acho que um outro conceito presente é o de objeto anônimo.

No segundo exemplo é criado um objeto chamado livro, na linha abaixo:

Livro livro = new Livro(); 

No primeiro exemplo, é criado um objeto sem nome (anônimo) new Livro(“Servlets & JSP”, “Kathy Sierra & Bert Bates”), e adicionado diretamente à lista.

No link abaixo fala-se sobre o conceito de objeto anônimo:
http://books.google.com.br/books?id=zcTD17jCzhUC&pg=PA356&lpg=PA356&dq=java+objeto+an%C3%B4nimo&source=bl&ots=5PPOMdTnLO&sig=30kWZTNYIssqxPzLVY9I1z7e0jI&hl=pt-BR&sa=X&ei=AnARUP7pLOnZ6wHA4YGIBA&ved=0CGEQ6AEwBzge#v=onepage&q=java%20objeto%20an%C3%B4nimo&f=false

[quote=al.barbosa]Acho que um outro conceito presente é o de objeto anônimo.

No segundo exemplo é criado um objeto chamado livro, na linha abaixo:

Livro livro = new Livro(); 

No primeiro exemplo, é criado um objeto sem nome (anônimo) new Livro(“Servlets & JSP”, “Kathy Sierra & Bert Bates”), e adicionado diretamente à lista.

No link abaixo fala-se sobre o conceito de objeto anônimo:
http://books.google.com.br/books?id=zcTD17jCzhUC&pg=PA356&lpg=PA356&dq=java+objeto+an%C3%B4nimo&source=bl&ots=5PPOMdTnLO&sig=30kWZTNYIssqxPzLVY9I1z7e0jI&hl=pt-BR&sa=X&ei=AnARUP7pLOnZ6wHA4YGIBA&ved=0CGEQ6AEwBzge#v=onepage&q=java%20objeto%20an%C3%B4nimo&f=false[/quote]

Boa observação al.barbosa. Mas nesse caso fico na dúvida se seria um objeto anônimo pois o método add recebe como argumento um objeto.

Sim, o método add recebe com argumento um objeto. Mas qual o nome desse objeto?
Quando você faz:

Livro livro = new Livro("Servlets & JSP", "Kathy Sierra & Bert Bates"); listaDeLivros.add(livro);

o nome do objeto é livro.
Mas quando você faz:

listaDeLivros.add(new Livro("Servlets & JSP", "Kathy Sierra & Bert Bates")); 

Você está adicionando à lista um novo objeto da classe Livro. Mas você não está dando um nome ao objeto (ou instância da classe Livro) que você está adicionando.

[quote=al.barbosa]Você está adicionando à lista um novo objeto da classe Livro. Mas você não está dando um nome ao objeto (ou instância da classe Livro) que você está adicionando.
[/quote]

Entendi agora al.barbosa :slight_smile: