A minha classe TestaConta aparentemene não tem error porem ao rodar esta dando error, segue os códigos
BANCO
package br.com.nicolicontabil.alura.banco;
import br.com.nicolicontabil.alura.banco.conta.Conta;
import br.com.nicolicontabil.alura.banco.conta.ContaCorrente;
public class TestaConta {
public static void main(String[] args) {
Conta conta = new ContaCorrente("Laerdes", 1234, 10000);
/*
AtualizadorDeContas atualizadorDeContas = new AtualizadorDeContas();
*/
conta.impreme();
}
}
SISTEMA
package br.com.nicolicontabil.alura.banco.sistema;
public class AtualizadorDeContas {
}
package br.com.nicolicontabil.alura.banco.sistema;
import br.com.nicolicontabil.alura.banco.conta.Tributavel;
public class GerenciadorDeImpostoDeRenda {
private double total;
public void adiciona(Tributavel t) {
System.out.println("Adicionando tributavel: " + t);
this.total += t.calculaTributos();
}
public double getTotal() {
return this.total;
}
}
CONTA
package br.com.nicolicontabil.alura.banco.conta;
import java.util.concurrent.ExecutionException;
public abstract class Conta {
protected double saldo;
private String nome;
private int agencia;
public Conta(String nome, int agencia, double saldo) {
this.nome = nome;
this.agencia = agencia;
this.saldo = saldo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getAgencia() {
return agencia;
}
public void setAgencia(int agencia) {
this.agencia = agencia;
}
public double getSaldo() {
return saldo;
}
public void impreme() {
System.out.println(nome);
System.out.println(agencia);
System.out.printf("O saldo é: %.2f\n", getSaldo());
}
public abstract void atualiza(double taxaSelic);
public void saca(double valorSaque) {
if (this.saldo >= valorSaque) {
this.saldo -= valorSaque;
} else {
System.out.println("Saldo insuficiente para saque");
}
}
public void deposita(double valorDeposito) throws ValorInvalidoException {
if (valorDeposito < 0) {
throw new ValorInvalidoException();
} else {
this.saldo += valorDeposito;
}
}
public void setSaldo(double saldo) {
this.saldo = saldo;
}
}
package br.com.nicolicontabil.alura.banco.conta;
public class ContaCorrente extends Conta implements Tributavel {
public ContaCorrente(String nome, int agencia, double saldo) {
super(nome, agencia, saldo);
}
public void atualiza(double taxaSelic) {
this.saldo = this.saldo * taxaSelic;
}
@Override
public double calculaTributos() {
return this.getSaldo() * 0.01;
}
/*
*
* public void atualiza(double taxa) { super.atualiza(taxa); }
*/
}
package br.com.nicolicontabil.alura.banco.conta;
public class ContaPoupanca extends Conta {
public ContaPoupanca(String nome, int agencia, double saldo) {
super(nome, agencia, saldo);
}
public void atualiza(double taxaSelic) {
this.saldo = this.saldo * taxaSelic;
}
public void deposita(double valor) {
this.saldo += valor - 0.10;
}
}
package br.com.nicolicontabil.alura.banco.conta;
public class SeguroDeVida implements Tributavel {
@Override
public double calculaTributos() {
// TODO Auto-generated method stub
return 42;
}
}
package br.com.nicolicontabil.alura.banco.conta;
public interface Tributavel {
double calculaTributos();
}
package br.com.nicolicontabil.alura.banco.conta;
import org.omg.Messaging.SyncScopeHelper;
public class ValorInvalidoException extends Exception {
}
`