import javax.management.RuntimeErrorException;
abstract class Conta {
// private double saldo;
protected double saldo;
public double getSaldo() {
return this.saldo;
}
public void setSaldo(double saldo) {
this.saldo = saldo;
}
public boolean saca(double valor_saque) throws Exception {
if (this.saldo < valor_saque) {
//return false;
throw new SaldoInsuficienteException(saldo);
}
else {
this.saldo = this.saldo - valor_saque;
return true;
}
};
public void deposita(double valor_dep) {
if (valor_dep > 0) {
this.saldo += valor_dep;
}
else {
throw new IllegalArgumentException("Você tentou depositar" + " um valor negativo");
}
};
//public void atualiza(double taxa) {
// this.saldo += (this.saldo * taxa);
// };
abstract public void atualiza(double taxa);
};
class TestaContas {
public static void main(String[] args) {
// Conta c = new Conta(); //este codigo não funciona porque a classe Conta passou a ser abstrata
ContaCorrente cc = new ContaCorrente();
ContaPoupanca cp = new ContaPoupanca();
// c.deposita(1000);
cc.deposita(1000);
// cp.deposita(1000);
//
try {
cp.deposita(-1000);
}
catch (IllegalArgumentException e) {
System.out.println("Você tentou depositar um valor inválido");
}
//
// c.atualiza(0.01);
cc.atualiza(0.01);
cp.atualiza(0.01);
//
try {
cc.saca(10000);
System.out.println("Saque Efetudado com sucesso");
} //catch (RuntimeException e) {pode ser assim
catch (SaldoInsuficienteException e) { //ou assim -- usando a classe cariada por nós
//System.out.println(cc.getSaldo() + " Saldo insufuciente");
System.out.println(cc.getSaldo() + " Saldo insufuciente");
}
catch (Exception e) { //ou assim
//System.out.println(cc.getSaldo() + " Saldo insufuciente");
System.out.println("Ocorreu um erro indeterminado");
}
// System.out.println(c.getSaldo());
System.out.println(cc.getSaldo());
System.out.println(cp.getSaldo());
System.out.printf("O saldo é: %.2f", cc.getSaldo());
System.out.printf("O saldo é: %.2f", cp.getSaldo());
}
}
não funcionou como esperado, o erro não apareceu