2
respostas

Dúvida sobre referências

Tenho uma dúvida conceitual:

Criando um objeto do tipo ContaCorrente: ContaCorrente conta1 = new ContaCorrente(); Criando um segundo objeto: ContaCorrente conta2 = new ContaCorrente(); Agora atribuindo a referência de conta 1 à conta2: conta2 = conta1;

Minha dúvida é a seguinte, se eu atribui a referência que conta1 guardava de um objeto em conta2, então ambas as variáveis deveriam apontar para o objeto referenciado em conta1, não? Ou seja, se alterarmos conta1, ok, ambos serão alterados, mas não entendo pq ao alterarmos o saldo de conta2, a conta1 continuará a ser alterada. A impressão que tenho é que ambos objetos se fundiram.

2 respostas

O que acontece é que agora conta1 e conta2 ocupam o mesmo ponteiro ou referência de memória e qualquer alteração refletirá em ambos. Quando alterar algum valor em conta2 a referência para estrutura criada na instância de conta1 e agora endereçada ou apontada em conta2 também será alterada. Veja a aula 2 de Tipos, o item Tipos de referência e tipos de valor para entender melhor o quê acontece.

De fato o que o amigo falou acima faz sentido, A referencia e a mesma, o ponteiro aponta para mesma alocação da memoria, o que e feito em um aplica-se em outro.

att. Rafael Lima