Não, ele vai pegar o valor do parâmetro e adicionar no atributo saldo da conta destino.
No exemplo que dei transferindo R$ 55.75, ficaria assim:
destino.saldo = destino.saldo + valor;
Ou pra ficar mais simplificado:
destino.saldo += valor;
Os dois exemplos fazem a mesma coisa.
Perceba que passei para o método transfere contaJose
e 55.75:
minhaConta.transfere(contaJose, 55.75);
Mas no exemplo acima usei os nomes destino
e valor
. Você entende o motivo disso? Quando você criou o método transfere, declarou que o método receberia dois parâmetros, um do tipo Conta e um do tipo double, e deu nomes a eles: destino e valor:
void transfere(Conta destino, double valor) {
this.saldo = this.saldo - valor;
destino.saldo = destino.saldo + valor;
}
Ou seja, essa é apenas a declaração do método. Dentro dele, ele vai tratar o primeiro parâmetro como um objeto do tipo Conta e não importa o nome que você enviar da sua classe de teste, ele vai chamar de destino, assim como o segundo parâmetro que é do tipo double, ele vai chamar de valor. Então, o contaJose
que eu mandei no teste lá em cima, para o método, se chama destino e o 55.75, ficará na variável valor.
Não importa os nomes dentro da declaração do método, só se importe em colocar nomes que façam sentido. Contudo, quando utilizar os métodos através das instâncias (objetos), o que importa é passar os parâmetros com os tipos corretos. O que acontecerá por trás não importa agora. Você sabe que o método vai transferir o dinheiro e ponto final.