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

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:

Não era bem isso.

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

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

bem explicado

obg