Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Se printa o saldo de minhaConta, como é que fica 1.500?

A questão é:

A partir desta classe, diga o que imprime o código:

public class Teste { public static void main(String [] args) { Conta minhaConta = new Conta(); minhaConta.saldo = 500.0; Conta outraConta = minhaConta; outraConta.saldo += 1000.0; System.out.println(minhaConta.saldo); } }

e a resposta foi: 1.500

Como deu esse resultado se printou minhaConta.saldo e não outraContra.saldo? Eu entendi que outraConta.saldo que somou com os os 1000 e apenas ela que ficou com esse valor!

4 respostas
solução!

A coisa acontece nessa linha: Conta outraConta = minhaConta Aqui as duas referencias outraConta e minhaConta apontam para o mesmo objeto. E esse objeto tem saldo = 500. Ao fazer outraConta.saldo += 1000.0, o saldo desse objeto vai para 1500. Como minhaConta continua apontando para esse objeto, o System.out.println(minhaConta.saldo) vai imprimir 1500.

Então, o que alterar a partir dessa linha de comando ( Conta outraConta = minhaConta ) pra frente, altera as duas referencias?

Vai alterar o objeto que as duas referencias apontam. Para dar eliminar esse vinculo você pode deixar “zerar” uma das referências assim: outraConta = null;

Valeu brother. acendeu a luz na mente agora. Que besteira e eu parando nisso rsrs.