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

Galera, duvidazinha rapida aqui rs

Qual resultado da nesse codigo?

class TestaReferencias {

public static void main(String args[]) {

Conta c1 = new Conta();

c1.deposita(100);

Conta c2 = c1; // linha importante!

c2.deposita(200);

System.out.println(c1.saldo);

System.out.println(c2.saldo); } }

5 respostas

João boa tarde, c2.deposita(200) parece estar comentado... mas pode ter sido por causa da formatação do código, enfim, se NÃO estiver comentado o resultado para ambos é 200, pois o objeto é um só sendo referenciado por duas variáveis.

Abraços

Olá João, abas variaveis c1 e c2 apontam para uma mesma instancia do objeto Conta, então ambos System.out mostrará o resultado 200.

solução!

Oi Joao, na verdade no valor do saldo é 300.

Conta c2 = c1; // linha importante!

nesse linha aí a c2 aponta pra c1, então elas são o mesmo objeto.

Como voce ja tinha depositado 100 na c1 a c2 ja começa com 100 de saldo

c2.deposita(200);

nesse último momento você deposita os 200 na c2 e analogamente vai também pra c1, então o saldo final é 300 nas duas contas

João, duas observações:

primeira, é bom você trabalhar com double quando tiver falando sobre dinheiro, no seu caso você ta usando int.

segunda: quando for colocar código nas dúvidas coloca ele formatado. É só clicar no inseri e código e colar dentro das ```. Fica mais fácil de entender e visualizar a sua dúvida

Verdade, jurava que tinha visto que tinha 100 e depositado mais 100, mas é isso mesmo 300 no mesmo objeto para as 2 variaveis de referencia Conta.