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

Dúvida - Começando com Orientação a objetosDúvida da Aula 03 - Sobre uso de método "transfere" #ATM

Estou com uma dúvida em relação ao método transfere pela lógica ele deposita na conta destino porém não saca da conta origem, EX: saldo na conta c1 = 100.0 , saldo na conta c2 = 100.0 fiz a transferencia na conta c2 foi para 150.0 e na conta c1 permaneceu 100.0., segue o código:

class Conta{

    int numero;
    String nome;
    double saldo;
    double limite;
    double saldoTotal;

    boolean saca(double valorSaque){
        if(this.saldo < valorSaque){
            System.out.println("Saldo insulficiente!");
            return false;
        } else{
            this.saldo -= valorSaque;
            return true;
        }
    }

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

    void imprime(){
        System.out.println("Numero da conta: " + this.numero);
        System.out.println("Nome titular: " + this.nome);
        System.out.println("Saldo disponivel R$"+ this.saldo);
        System.out.println("Limite atual R$"+ this.limite);
        System.out.println("Saldo total R$"+ (this.saldo + this.limite));
        System.out.println("******************************************");
    }

    void saldo(){

    }

    void transferePara(double valor, Conta destino){
        this.saldo -= valor;        
        destino.saldo += valor; 
    }

    void tipoConta(){

    }
}

class TestaConta{

    public static void main(String[] args){

        Conta c1 = new Conta();
        c1.numero = 1;
        c1.nome = "Eduardo";
        c1.saldo = 100.0;
        c1.limite = 300.0;
        //c1.saca(50.0);
        c1.deposita(200.0);
        c1.imprime();

        Conta c2 = new Conta();
        c2.numero = 2;
        c2.nome = "Paola";
        c2.saldo = 100.0;
        c2.limite = 300.0;
        //c2.saca(10.0);
        c2.deposita(200.0);
        c1.transferePara(50.0, c2);
        c2.imprime();

        Conta c3 = new Conta();
        c3.numero = 3;
        c3.nome = "Joana";
        c3.saldo = 100.0;
        c3.limite = 300.0;
        //c3.saca(50.0);
        c3.deposita(200.0);
        c3.imprime();

    }
}
3 respostas

Eduardo, Bom dia !

pelo o que testei , está funcionando perfeitamente o seu método transferePara .

no seu sistema , você está transferindo da conta 1 para conta 2 50.0 , correto .

se no final do programa você adiciona dois System.out.println , você consegue verificar que a conta 2 possui 350.0 e a conta 1 possui 250.0

faça o teste .

espero ter ajudado , Bons Estudo .

solução!

Olá Eduardo,

Quando você imprime c1, está aparecendo o valor 100, porque no momento que você imprime a transferência ainda não foi realizada. A transferência só vai ser realizada 7 linhas de código depois, se você colocar o comando " c1.imprime();" depois do comando que você fez a transferência, ou seja, depois do "c1.transferePara(50.0, c2);" você vai constatar que seu problema será resolvido.

abrs,

Boa Tarde Pessoal,

Muito obrigado pela ajuda realmente está funcionando perfeitamente era só ter colocado o comando imprime() no lugar correto e funcionou conforme eu esperava erro de principiante kkk muito obrigado!!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software