Pq as referencias não funcionam se requisitadas por métodos? ex: getNome() = "Pedro";

4 respostas
MrDataFlex

topico auto explicativo, mas:

private String nome;

set…

public String getNome() {

return this.nome;

}

já que: nome = “pedro” funciona, pq getNome() = “pedro” não funciona, sendo que a referencia é a mesma ? (sequer compila)

:thumbup:

4 Respostas

crpablo

Não era bem isso.

Rafael_Nunes

Porque ‘nome’ é uma referência, e você pode apontar para um Objeto String.
getNome() te retorna um objeto String, não uma referência dele. Seria o mesmo qe você fazer: “Pedro” = “Pedro”. O operador do lado esquerdo deve ser uma referência para que você possa fazer atribuição de valores

T

Procure por "LVALUE" e "RVALUE" no Google.

Basicamente o que você precisa entender é que chamadas a métodos em Java sempre retornam RVALUES; então você não pode fazer essa tal atribuição (que requer um LVALUE).
Algumas linguagens (como o C++) permitem que chamadas a métodos também retornem LVALUES. Veja um exemplo disso em C++ -> http://www.devx.com/tips/Tip/5696

MrDataFlex

bem explicado

obg

Criado 14 de fevereiro de 2008
Ultima resposta 14 de fev. de 2008
Respostas 4
Participantes 4