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!!