public boolean transfere(double valor, Conta destino) {
if(this.saldo >= valor) {
this.saldo -= valor;
destino.deposita(valor);
return true;
}
return false;
}
public boolean transfere(double valor, Conta destino) {
if(this.saldo >= valor) {
this.saldo -= valor;
destino.deposita(valor);
return true;
}
return false;
}
O "destino.deposita(valor)" é a chamada da função deposita. O "destino." é a referência ao objeto, a conta que você quer que "receba" o dinheiro transferido, que irá chamar essa função. A variável destino nada mais é do que uma variável genérica, você pode colocar qualquer nome nela, esse nome "destino" é como se fosse uma "máscara" da referência dada ao objeto criado na função Main. Em resumo, o destino nada mais é do que o a referência do objeto que você está passando como parâmetro.
Oi Diego, tudo bem?
É isso mesmo, destino
foi o nome que nós demos à referência de Conta
que foi passada como parâmetro no método transfere
:
public boolean transfere(double valor, Conta destino) {
//Código omitido
}
Como podemos ver, o método transfere
deve receber 2 parâmetros: o valor
(double
) e o destino
(Conta
). Portanto, como você disse, o destino
, por ser uma referência do tipo Conta
, pode usar o método deposita
.
Anteriormente, usamos o método deposita
através da referência conta
do tipo Conta
, como nesse exemplo, onde instanciamos um objeto de Conta
para depois invocar seus métodos:
public class TesteSacaNegativo {
public static void main(String[] args) {
Conta conta = new Conta();
conta.deposita(100);
//Código omitido
}
}
Como agora estamos criando o método transfere
que faz uso do método deposita
, precisamos ter uma referência de Conta
dentro de transfere
para poder invocar o deposita
, mas antes disso, nós também precisamos dar um nome para a referência de Conta
que será passada como parâmetro (no nosso caso, destino
).
Qualquer dúvida é estou aqui!
Bons estudos!!