Pessoal
Estou pesquisando, mas não estou encontrando nada que esclareça minhas dúvidas.
Se tivermos o seguinte código:
Object x = null;
giveMeAString (x);
System.out.println (x);
[...]
void giveMeAString (Object y)
{
y = "This is a string";
}
A saída seria “This is a string”, ou seja, a referência passada ao método, por parâmetro, foi alterada dentro dele.
Já se considerarmos:
A saída seria"0", ou seja, o valor passado ao método, por parâmetro, não foi alterado dentro dele.
Pelo que entendi, nestes casos, referências são alteradas, mas valores não. Seria isto? Alguém saberia me explicar o motivo disto, pois está bastante confuso pra mim.
Outra dúvida. E se por acaso eu necessitar do comportamento contrário, como posso fazer para passar uma referência por parâmetro, de modo que ela não seja alterada dentro do método? E como passar um valor por parâmetro e fazer com que ele possa ser alterado dentro do método?
Espero ter sido claro.
Grato
Julio Romano
