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