Método "saca" e "deposita"

Estou estudando através de uma apostila da Caelum e preciso criar dois métodos, um saca e outro que deposita. segue o código:

public class Aula7 {

public static void main(String[] args){
    
    //criando a conta
    Conta minhaConta;
    minhaConta = new Conta();
    
    //Alterando valores de minhaConta
    minhaConta.titular = "Ronaldo Casartelli";
    minhaConta.saldo = 1000;
    
    
    //saca 200 Reais
    minhaConta.saca(200);
    
    //Deposita 500 reais
    minhaConta.deposita(500);
    
    System.out.println("Seu saldo atual é de R$" + minhaConta.saldo);
}

}

A dúvida é… como eu crio um metodo “deposita” (ou saca) que ao colocar o valor entre os parenteses ele automaticamente receberá esse valor???

OBS: Desculpem minha ignorância, sou iniciante.

Bom dia amigo

Você pode criar os métodos dentro da classe de execução já que é apenas para aprendizado e sempre vai seguir o mesmo padrão de escrita “visibilidade”, “retorno”, “nome” e “parâmetros”. Ex: public String getText(int index):

public class Aula7 {

public static void main(String[] args) {
    //criando a conta
    Conta minhaConta = new Conta();

    //Alterando valores de minhaConta
    minhaConta.setTitular("Ronaldo Casartelli");
    minhaConta.setSaldo(new BigDecimal(1000));

    //saca 200 Reais
    System.out.println(String.format("Saldo atual da conta: R$ %s\n", minhaConta.saca(200)));

    //Deposita 500 reais
    System.out.println(String.format("Saldo atual da conta: R$ %s\n", minhaConta.deposita(500)));

    System.out.println(String.format("Seu saldo atual é de R$ %s", minhaConta.getSaldo().setScale(2).toString().replace(".", ",")));
}

public static class Conta {

    private BigDecimal saldo;
    private String titular;

    public Conta() {
    }

    public Conta(BigDecimal saldo, String titular) {
        this.saldo = saldo;
        this.titular = titular;
    }

    /**
     * Método que efetua uma retirada na conta
     *
     * @param valor Valor a ser sacado
     * @return Saldo da conta
     */
    public String saca(double valor) {
        BigDecimal v = BigDecimal.valueOf(valor).setScale(2);
        System.out.println(String.format("Efetuando saque de R$ %s", v.toString().replace(".", ",")));
        saldo = saldo.subtract(v);
        return saldo.setScale(2).toString().replace(".", ",");
    }

    /**
     * Método que efetua um depósito na conta
     *
     * @param valor Valor a ser sacado
     * @return Salda conta
     */
    public String deposita(double valor) {
        BigDecimal v = BigDecimal.valueOf(valor).setScale(2);
        System.out.println(String.format("Efetuando depósito de R$ %s", v.toString().replace(".", ",")));
        saldo = saldo.add(v);
        return saldo.setScale(2).toString().replace(".", ",");
    }

    public BigDecimal getSaldo() {
        return saldo;
    }

    public void setSaldo(BigDecimal saldo) {
        this.saldo = saldo;
    }

    public String getTitular() {
        return titular;
    }

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

    }

   }

Quando for trabalhar com valores que necessitam de uma precisão maior, use sempre o BigDecimal, variáveis como double e float podem apresentar variações de valores que comprometerão a confiabilidade do cliente em seu sistema.

Utilizei uma classe conta static só para fazer um new diretamente no main, se criar a classe separadamente não será necessário utilizar static.

1 curtida

Na sua classe Conta:

public void saca(double valorParaSacar) {
    valorEmConta -= valorParaSacar;
}

public void deposita(double valorParaDepositar) {
    valorEmConta += valorParaDepositar;
}
1 curtida

Obrigado amigo, abraços!