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:
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