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

Minha resolulção


public class Cliente {

    private String nome;
    private String cpf;
    private String profisao;


    public String getNome() {
        return nome;
    }
    public void setNome(String nome) {
        this.nome = nome;
    }
    public String getCpf() {
        return cpf;
    }
    public void setCpf(String cpf) {
        this.cpf = cpf;
    }
    public String getProfisao() {
        return profisao;
    }
    public void setProfisao(String profisao) {
        this.profisao = profisao;
    }



}



public class Conta {

    private double saldo;
    private int agencia;
    private int numero;
    private Cliente titular;

    public double getSaldo() {
        return this.saldo;
    }

    void deposita(double valor) {
        this.saldo += valor;
        System.out.println("foi depositado " + valor + " para vc " + getTitular().getNome());
    }

    int ok = 1;

    public boolean retiraValor(double valor) {
        if (this.saldo >= valor) {
            this.saldo -= valor;
            ok = 1;
            return true;

        } else {
            ok = 0;
            return false;

        }

    }

    public boolean saca(double valor) {
        retiraValor(valor);
        if (ok == 1) {
            System.out.println("saque efetuado R$" + valor);
            return true;
        }
        System.out.println("saldo Insuficiente, para realizar o saque");
        return false;
    }

    public boolean transfere(double valor, Conta destino) {
        retiraValor(valor);
        if (ok == 1) {
            System.out.println(
                    this.getTitular().getNome() + " transferencia efetuada R$" + valor + " para " + destino.getTitular().getNome());
            destino.deposita(valor);
            return true;
        } else {
            System.out.println("saldo Insuficiente, para realizar a transferencia");
            return false;
        }

    }

    public int getNumero() {
        return this.numero;

    }

    public void setNumero(int numero) {
        this.numero = numero;

    }

    public int getAgencia() {
        return this.agencia;

    }

    public void setAgencia(int agencia) {
        this.agencia = agencia;

    }

    public Cliente getTitular() {
        return this.titular;

    }

    public void setTitular(Cliente titular) {
        this.titular = titular;
    }
}

public class TestaBanco {
    public static void main(String[] args) {
        Conta contaDoAndre = new Conta();
        Cliente andre = new Cliente();
        contaDoAndre.setTitular(andre);
        andre.setNome("Andre M Geraseev");
        andre.setCpf("123.123.123.12");
        andre.setProfisao("Gastronomo");


        Conta contaDaChris = new Conta();
        Cliente chris = new Cliente();
        contaDaChris.setTitular(chris);

        contaDaChris.getTitular().setNome("Christiane R Sakuragi");
        //Em cima poderia ter usado apenas chris.setNome
        chris.setCpf("321321321-32"); 
        chris.setProfisao("Fisioterapeuta");


        contaDaChris.deposita(500);
        contaDoAndre.deposita(10);
        contaDaChris.transfere(20, contaDoAndre);

        System.out.println(contaDoAndre.getSaldo());

    }

}

saida

foi depositado 500.0 para vc Christiane R Sakuragi

foi depositado 10.0 para vc Andre M Geraseev

Christiane R Sakuragi transferencia efetuada R$20.0 para Andre M Geraseev

foi depositado 20.0 para vc Andre M Geraseev

30.0

2 respostas
solução!

Boa tarde Andre!

Ficou bastante interessante sua solução, só faria uma mudança... notei que vc não verifica se em um deposito o valor passado é positivo, e isso pode ser um ponto a observas, já que para os saques vc faz uma verificação:

void deposita(double valor) {
        if (valor > 0){
             this.saldo += valor;
             System.out.println("foi depositado " + valor + " para vc " + getTitular().getNome());
        } else {
            System.out.println("Não é possível fazer depósitos com valores negativos!");
        }
    }

Obrigado Robson, vou fazer isso, nem tinha pensado nisso na verdade.

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