E depois o passa como parâmetros para getName(Sa), o que você está passando é o endereço de memória desse vetor, então dentro do getName você faz
você altera o vetor criado no construtor.
Sacou?
Ismaels
Cara, no método getName você definiu que a primeira posição do array que é passado no parâmetro vai receber o valor “Coors”. Você está passando um Array, que é um objeto e portanto o que você fizer com ele dentro do método irá se refletir fora do método também.
eberson_oliveira
Olá,
O Java trabalha com passagem de valores por referência.
Quando vc passou a variável Sa para o metodo getName as variaveis s e Sa passaram a compartilhar o mesmo endereço de memória de forma que as alterações feitas em uma delas terá o mesmo efeito na outra.
Para que não fosse alterada vc deveria ter passado:
getName(Sa[0].clone());// mas para que isso funcione é necessário que o objeto passado implemente a interface Cloneable
G
Giminiani
Como o colega lhe respondeu, você passa a referência do vetor de String (Sa) com parâmetro para o método getName, o qual modifica sua primeira célula. Sendo assim, após a chamada ao método, teremos:
Sa [0] = “Coors” e Sa[1] = “John Smith” no término da chamada de getName(Sa). Em seguida a impressão.