"Oi, amigo, sou eu de novo, Ellie. Desculpe por dizer isso repetidamente, mas é comum na Terra no século 31. Gostaria de fornecer mais detalhes sobre variáveis de referência e passagem de variáveis de referência para funções ( métodos)."
"Estou pronto."
"Ótimo, então ouça. As variáveis de referência são quaisquer variáveis não primitivas. Essas variáveis contêm apenas uma referência de objeto (uma referência a um objeto)."
"As variáveis primitivas contêm valores, enquanto as variáveis de referência armazenam referências a objetos ou nulos. Estou certo?"
"Absolutamente."
"O que é uma referência?"
"A relação entre um objeto e uma referência de objeto é como a relação entre uma pessoa e seu número de telefone. O número de telefone não é a pessoa, mas pode ser usado para ligar para a pessoa, pedir alguma informação, gerenciá-la ou dar ordens. Uma referência também é usada para trabalhar com objetos. Todos os objetos interagem uns com os outros usando referências."
"Como se eles estivessem falando um com o outro pelo telefone?"
"Exatamente. Quando uma variável primitiva é atribuída, o valor é copiado. Se uma referência é atribuída, apenas o endereço do objeto (o número de telefone) é copiado. O objeto em si não é copiado. "
"OK, entendi."
"Uma referência oferece mais um benefício: você pode passar uma referência de objeto para qualquer método, e esse método poderá usar a referência para modificar (alterar) o objeto chamando seus métodos e acessando os dados dentro do objeto."
Exemplo 1
Os valores m e n não mudam aqui.
|
E aqui está o porquê.
Este código é análogo ao código à esquerda
|
"Apenas os valores 5 (m) e 6 (n), respectivamente, são atribuídos às variáveisaeb;aebnão sabem nada sobre (e não influenciam de forma alguma) m e n."
"Para dizer a verdade, agora percebo que não entendi nada. Você pode me dar mais alguns exemplos?"
"Com uma referência de objeto, poderíamos ter feito o seguinte:"
Exemplo 2
Os dados dos objetos mudam neste código
|
E aqui está o porquê.
Este código é análogo ao código à esquerda
|
"As referências a jen e beth, respectivamente, são atribuídas às variáveis a e b; a e b alteram os valores dentro dos objetos jen e beth."
"E você pode declarar classes dentro de outras classes, certo? Legal!"
"Mas eu ainda não entendo todo o resto muito bem."
"Tudo no devido tempo."
GO TO FULL VERSION