2
respostas

Boa noite, gostaria que vocês me dissessem se meu pensamento está certo

O "transfere" está referindo em que o valor vai ser transferido pra ele mesmo?? e se eu fizesse uma outra class exemplo: Conta_dois e colocasse dessa maneira:

public boolean tranfere(double valor, Conta_dois destino) { //apenas substitui "Conta" if (this.saldo >= valor) { this.saldo -= valor; destino.deposita(valor); return true; } return false; }


CODIGO DO PAULO

public class Conta { double saldo; int agencia; int numero; String titular;

public void deposita(double valor) {
    this.saldo += valor;
}

public boolean saca(double valor) {
    if (this.saldo >= valor) {
        this.saldo -= valor;
        return true;
    } else {
        return false;
    }
}

public boolean tranfere(double valor, Conta destino) {  // aqui ele está referindo em "Conta" que o valor vai ser transferido pra ele mesmo??
    if (this.saldo >= valor) {
        this.saldo -= valor;
        destino.deposita(valor);
        return true;
    }
    return false;
}

}

2 respostas

Olá, Conta é um tipo e não uma classe instanciada. Do jeito que está no seu exemplo Conta_dois seria um outro tipo de conta, outra classe. Uma transferência nunca é de uma conta para ela mesma, mesmo que seja uma poupança atrelada a conta. Se você quer transferir para outra conta, precisa instanciar Conta com o nome conta_dois.

Conta conta = new Conta(<propriedades_da_conta>);
Conta conta_dois = new Conta(<propriedades_da_conta>);

if (conta.tranfere(1234.22, conta_dois) ) {
   // sucesso na transferência.
{
 else {
   // falha na transferência.
}

Transfere não está transferindo para a própia conta, está transferindo para outra conta passada como parâmetro destino do método.

Olá Nicolas, espero que esteja bem. A ideia da orientação a objetos é justamente criar uma "forma" para vários objetos, neste caso não precisaria criar uma outra classe sendo que a estrutura do tipo conta de origem e destino são iguais, ou seja, armazenam as mesmas informações. Respondendo a sua pergunta, o método desenvolvido não está transferindo para a mesma conta e sim para um outro objeto do tipo de conta.

Bons estudos!