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

Além de Conta e Cliente, criei Aplicacoes. Pfv analisem.

Olá,

para testar o aprendizado criei a classe Aplicacoes e alguns métodos: a ideia é ter uma classe com as aplicações em renda fixa e renda variável. Alguém pode, por favor, dar uma analisada. Acho que ficou ok.

public class Aplicacoes {

private double saldoRVariavel;
private double saldoRFixa;

public void aplicaRVariavel(double valor) {
    this.saldoRVariavel += valor;    
}

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

public void aplicaRFixa(double valor) {
    this.saldoRFixa += valor;    
}

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

public double getSaldoRFixa() {
    return saldoRFixa;
}

public double getSaldoRVariavel() {
    return saldoRVariavel;
}

} e acrescentei o atributo investimentos à classe Conta

public class Conta { private double saldo; private int agencia; private int numero; private Cliente titular; private Aplicacoes investimentos;

e escrevi o código TestaInvestimentos

public class TestaInvestimentos {

public static void main(String[] args) {

    Conta conta = new Conta();

    Cliente paulo = new Cliente();

    conta.setTitular(paulo);

    conta.setAgencia(136);
    System.out.println("Agência do Cliente: " + conta.getAgencia());

    conta.setNumero(1337);
    System.out.println("Número do Cliente: " + conta.getNumero());

    conta.getTitular().setNome("paulo silveira");
    System.out.println("Nome do Cliente: " + conta.getTitular().getNome());

    conta.getTitular().setProfissao("progrmador");
    System.out.println("Profissão do Cliente: " + conta.getTitular().getProfissao());

    Aplicacoes aplicacoes = new Aplicacoes();

    // Aplicações ------------------
    conta.setInvestimentos(aplicacoes);

    conta.getInvestimentos().aplicaRFixa(1000);
    System.out.println("Saldo Renda Fixa : " + conta.getInvestimentos().getSaldoRFixa());

    conta.getInvestimentos().aplicaRVariavel(2500);
    System.out.println("Saldo Renda Variável : " + conta.getInvestimentos().getSaldoRVariavel());

    aplicacoes.resgataRFixa(150);
    System.out.println("Saldo Renda Fixa : " + conta.getInvestimentos().getSaldoRFixa());

    conta.getInvestimentos().resgataRVariavel(550);
    System.out.println("Saldo Renda Variável : " + conta.getInvestimentos().getSaldoRVariavel());


}

e o print do resultado:

Agência do Cliente: 136 Número do Cliente: 1337 Nome do Cliente: paulo silveira Profissão do Cliente: progrmador Saldo Renda Fixa : 1000.0 Saldo Renda Variável : 2500.0 Saldo Renda Fixa : 850.0 Saldo Renda Variável : 1950.0

2 respostas
solução!

Uma sugestão de melhoria para leitura e a escrita do seu código é a seguinte alteração na classe Aplicação. Ao invés de usar dessa jeito

if(this.saldoRVariavel >= valor) {
        this.saldoRVariavel -= valor;
        return true;
    } else {
        return false;
    }

Tente apenas remover o else

if(this.saldoRVariavel >= valor) {
        this.saldoRVariavel -= valor;
        return true;
    } 
return false;

o else acaba não sendo necessario nesse caso, pois se a condição do if não for verdadeira o seu método vai retornar false de qualquer maneira.

Fora isso seu código e sua ideia foram bem legais.

Sucesso

Obrigado, Marco Vinicius pela análise e sugestão.