} Esse método acima está travado em 10 mil. Só se pode depositar 10 mil na conta ? Nào faz sentido. O valor a ser depositivo deve ser passado como parametro para o depósito de forma semelhando ao método setSaldo. Só que em vez de setar o saldo, vai somar ao saldo. Além disso o método não deveria ser chamado getdepositarquantia e sim apenas depositarQuantia. Embora o nome do método não afete o seu funcionamento é importante dar nomes que sejam mais claros.
O mesmo acontece com o método de saque. Ele está travado com o valor de 200. Ora ? e se quiser sacar 150 ? ou 350 ? ou 220 ? Ou 10 ? O valor a ser sacado deve ser parametro do método. O problema do nome do método também acontece aqui. Não devia ser getSacarQuantia e sim apenas sacarQuantia. E nesse método aqui é que vai-se calcular a taxa que o enunciado avisa "Para cada saque será debitada também uma taxa de operação equivalente à 0,5% do valor sacado." Aí pergunto uma coisa: você tem ou teve conta em banco ? Já tentou sacar 200 reais quando a conta nào tinha saldo ? Se lembra o que aconteceu ? Nos bancos vai ter um método de saque de contas muito parecido com esse e garanto a você que se não tiver saldo na conta o banco não dá a grana, bicho. Num abre mesmo.
Então eu faria assim
public boolean SacarQuantia( double valor_saque ) { double taxa = valor_saque * 0.005 // isso equivale 0,5% if (this.getSaldo() < (valor_saque+taxa) { // se nào tem grana suficiente... return false; // nada feito ! num tem grana, nao conseguiu sacar }; // se chegamos aqui é porque tem grana suficiente. // vamos subtrair do saldo o valor total da transacao = saque + taxa this.setSaldo( this.getSaldo() - valor_saque - taxa); return True; }
Observe, mesmo estando dentro da classe é sempre recomendável usar os métodos getter/setter para os atributos/campos.
Optei por criar o método SacarQuantia() retornando true/false para que o programa principal possa testar se o saque foi bem sucedido ou não.
então o programa principal ficaria assim
public class Principal {
public static void main(String[] args) {
ContaCorrente dinheiroSaldo = new ContaCorrente(); dinheiroSaldo.setSaldo(1000.00); // abriu a conta e tacou 1 mil lá // próximo comando vai mostrar o saldo em 1000 System.out.println("Saldo em Conta :" + dinheiroSaldo.getSaldo() + " "); // vamos depositar mais 300 reais dinheiroSaldo.depositarQuantia(300); // depositou +200 reais
// próximo comando deve mostrar saldo de 1300 reais System.out.println("Saldo atual com deposito :" + dinheiroSaldo.getdepositarQuantia() + " ");
// agora vamos fazer a melhor coisa = sacar dinheiro if ( SacarQuantia(800) ) { System.out.println("Tinha dinheiro suficiente na conta. Sacou!"); } else { System.out.println("Não tinha dinheiro suficiente na conta. Dançou!"); } // nesse exemplo, o if acima NUNCA vai dar else porque sabemos que o // que o saldo anterior era 1300 reais e dá para sacar 800. // deixei aqui apenas para ilustrar como se usa o método SacarQuantia() System.out.println("Saldo com saque com taxa :" + dinheiroSaldo.getSaldo() );
}
}
Eis o programa https://repl.it/@bokomoko/Classe-contacorrente
Lista de comentários
public double getdepositarQuantia() {
double quantia = 1000.00;
double saldo = this.saldo + quantia;
return saldo;
}
Esse método acima está travado em 10 mil. Só se pode depositar 10 mil na conta ? Nào faz sentido. O valor a ser depositivo deve ser passado como parametro para o depósito de forma semelhando ao método setSaldo. Só que em vez de setar o saldo, vai somar ao saldo. Além disso o método não deveria ser chamado getdepositarquantia e sim apenas depositarQuantia. Embora o nome do método não afete o seu funcionamento é importante dar nomes que sejam mais claros.
O mesmo acontece com o método de saque. Ele está travado com o valor de 200. Ora ? e se quiser sacar 150 ? ou 350 ? ou 220 ? Ou 10 ? O valor a ser sacado deve ser parametro do método. O problema do nome do método também acontece aqui. Não devia ser getSacarQuantia e sim apenas sacarQuantia. E nesse método aqui é que vai-se calcular a taxa que o enunciado avisa "Para cada saque será debitada
também uma taxa de operação equivalente à 0,5% do valor sacado."
Aí pergunto uma coisa: você tem ou teve conta em banco ? Já tentou sacar 200 reais quando a conta nào tinha saldo ? Se lembra o que aconteceu ? Nos bancos vai ter um método de saque de contas muito parecido com esse e garanto a você que se não tiver saldo na conta o banco não dá a grana, bicho. Num abre mesmo.
Então eu faria assim
public boolean SacarQuantia( double valor_saque ) {
double taxa = valor_saque * 0.005 // isso equivale 0,5%
if (this.getSaldo() < (valor_saque+taxa) { // se nào tem grana suficiente...
return false; // nada feito ! num tem grana, nao conseguiu sacar
};
// se chegamos aqui é porque tem grana suficiente.
// vamos subtrair do saldo o valor total da transacao = saque + taxa
this.setSaldo( this.getSaldo() - valor_saque - taxa);
return True;
}
Observe, mesmo estando dentro da classe é sempre recomendável usar os métodos getter/setter para os atributos/campos.
Optei por criar o método SacarQuantia() retornando true/false para que o programa principal possa testar se o saque foi bem sucedido ou não.
então o programa principal ficaria assim
public class Principal {
public static void main(String[] args) {
ContaCorrente dinheiroSaldo = new ContaCorrente();
dinheiroSaldo.setSaldo(1000.00); // abriu a conta e tacou 1 mil lá
// próximo comando vai mostrar o saldo em 1000
System.out.println("Saldo em Conta :" + dinheiroSaldo.getSaldo() + " ");
// vamos depositar mais 300 reais
dinheiroSaldo.depositarQuantia(300); // depositou +200 reais
// próximo comando deve mostrar saldo de 1300 reais
System.out.println("Saldo atual com deposito :" +
dinheiroSaldo.getdepositarQuantia() + " ");
// agora vamos fazer a melhor coisa = sacar dinheiro
if ( SacarQuantia(800) ) {
System.out.println("Tinha dinheiro suficiente na conta. Sacou!");
} else {
System.out.println("Não tinha dinheiro suficiente na conta. Dançou!");
}
// nesse exemplo, o if acima NUNCA vai dar else porque sabemos que o
// que o saldo anterior era 1300 reais e dá para sacar 800.
// deixei aqui apenas para ilustrar como se usa o método SacarQuantia()
System.out.println("Saldo com saque com taxa :" +
dinheiroSaldo.getSaldo() );
}
}
Eis o programa
https://repl.it/@bokomoko/Classe-contacorrente