Porque no primeiro método você tem um valor primitivo, ou seja, o valor da váriavel está nela, quando você passa por parâmetro ela passa os valores pra outra variavel (a do método), então quando você altera o valor no primeiro método ele não muda o valor da variável do main, você você está alterando o valor da cópia dela, dentro do método.
Já no segundo você passa uma variável de referência, um objeto criado, sendo assim você passa o conjunto de bits que apontam para o objeto criado (pois variáveis de referência nunca guardam seus valores, elas possuem o endereço da onde está o objeto no heap), então quando você altera o valor no segundo método, ele altera o msm objeto de referência criado no main, pois você passou o "caminho" de onde esta o objeto, que no caso é o mesmo.
This message was edited 1 time. Last update was at 01/10/2009 12:03:06
|