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

Metodo para transferir funciona para uma conta e nao funciona para outra.

public class Conta {

    double saldo;
    int agencia;
    int numero;
    String nome;



    public void saca (double valor) {
        if (this.saldo >= valor) {
            this.saldo-=valor;

        }
    }

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


    public boolean transfere (double valor , Conta destino) {
        if ( this.saldo >= valor) {
            this.saldo -= valor;
            destino.saldo += valor;
            return true;
        }else {
            return false;
        }
    }
}

public class testeObjetos {


public static void main(String[] args) {

        Conta primeiraconta = new Conta();
        primeiraconta.deposita(1000);

        System.out.println(primeiraconta.saldo);


        Conta segundaconta = new Conta();
        segundaconta.deposita(1000);
        segundaconta.transfere(100, primeiraconta);

        System.out.println(segundaconta.saldo);




}


}
3 respostas

Olá Daniel não entendi o problema, poderia dar mais detalhes para mim? Eu executei seu código aqui e o comportamento aparentemente esta correto.

Boa tarde ! então , quando eu transfiro da segunda conta para a primeira conta ok ! Da certo !

Quando tento transferir da primeira conta para a segunda ele não permite!

solução!

O teste que você esta fazendo é desta forma ?

public class testeObjetos {


    public static void main(String[] args) {
        Conta primeiraconta = new Conta();
        primeiraconta.deposita(1000);
        System.out.println(primeiraconta.saldo);

        Conta segundaconta = new Conta();
        segundaconta.deposita(1000);
        System.out.println(segundaconta.saldo);

        segundaconta.transfere(100, primeiraconta);

        System.out.println(segundaconta.saldo);
        System.out.println(primeiraconta.saldo);

        primeiraconta.transfere(100, segundaconta);

        System.out.println(segundaconta.saldo);
        System.out.println(primeiraconta.saldo);

    }


}

E você esta tendo essas saídas?

1000.0
1000.0
900.0
1100.0
1000.0
1000.0

Se for, também esta correto, pois você primeiro transferiu e na sequência "estornou".

Caso seja outro tipo de teste manda aqui pra eu dar uma olhada, por favor.