Open MedeirosJoel opened 11 months ago
Oi, Joel. Tudo certinho?
Então, no Java não temos o conceito de ponteiro e sim de referência do objeto.
Quando atribuímos livroPorTitulo = l;
, estamos simplesmente fazendo com que a referência livroPorTitulo
aponte para o mesmo objeto que a referência l
.
Aí, após o loop, livroPorTitulo
conterá a referência para o objeto Livro
que possui o título correspondente, se encontrado, ou será nulo se nenhum título correspondente for encontrado.
Mas não ṕrecisa se preocupar tanto com isso, no Java temos "garbage collection", que cuida de desalocar automaticamente a memória ocupada por objetos que não estão mais sendo referenciados.
Logo, se você modificar o objeto livroPorTitulo
, as mudanças também serão refletidas na referência l
e vice-versa, porque ambas as referências apontam para o mesmo objeto na memória.
Tenta fazer o teste:
public Livro pesquisarPorTitulo(String titulo) {
Livro livroPorTitulo = null;
if (!livroList.isEmpty()) {
for (Livro l : livroList) {
if (l.getTitulo().equalsIgnoreCase(titulo)) {
livroPorTitulo = l;
System.out.println("Antes de modificar: " + l.getAutor());
System.out.println("Antes de modificar: " + livroPorTitulo.getAutor());
livroPorTitulo.setAutor("Autor modificado aqui em livroPorTitulo, também modifica em l.");
System.out.println("Autor de l " + l.getAutor());
System.out.println("Autor de livroPorTitulo " + livroPorTitulo.getAutor());
break;
}
}
return livroPorTitulo;
} else {
throw new RuntimeException("A lista está vazia!");
}
}
Te indico esse tópico aqui no stackoverflow: https://pt.stackoverflow.com/questions/56470/qual-a-diferen%C3%A7a-entre-ponteiro-e-refer%C3%AAncia
Espero ter ajudado! (: Bons estudos para nós!
Olá Camila, estou realizando o seu curso e estudando aqui e gostaria se possível de uma melhor explicação do que está acontecendo na linha abaixo: https://github.com/cami-la/collections-java-api-2023/blob/cf51d96e0b6376493b6b19d85390914f25ba2965/src/main/java/list/Pesquisa/CatalogoLivros.java#L51C1-L51C30
O que está acontecendo é a cópia do objeto ou a indicação de um ponteiro? Pesquisei um pouco e não tive boas conclusões. Desde já agradecido.