import java.text.NumberFormat;
public class Formatando {
String numeroFormatado;
public String getNumeroFormatado(double valor) {
return this.numeroFormatado = NumberFormat.getCurrencyInstance().format(valor);
}
}
public class ContaPoupanca extends Conta implements Tributavel{
public ContaPoupanca(int agencia, int numero) {
super(agencia, numero);
}
@Override
public void deposita(double valor) {
super.saldo += valor;
}
@Override
public double getValorImposto() {
// TODO Auto-generated method stub
return super.saldo * 0.050;
}
}
public class AplicacaoFinanceira extends Conta implements Tributavel{
public AplicacaoFinanceira(int agencia, int numero) {
super(agencia, numero);
// TODO Auto-generated constructor stub
}
@Override
public void deposita(double valor) {
// TODO Auto-generated method stub
super.saldo += valor;
}
@Override
public double getValorImposto() {
// TODO Auto-generated method stub
return super.saldo * 0.2;
}
}
public class testeTributaveis {
public static void main(String[] args) {
Cliente cliente = new Cliente();
cliente.setNome("JOÃO APARECIDO");
ContaCorrente cc = new ContaCorrente(222, 333);
cc.deposita(100.0);
SeguroDeVida seguro = new SeguroDeVida();
ContaPoupanca pp = new ContaPoupanca(222,333);
pp.deposita(500);
AplicacaoFinanceira af = new AplicacaoFinanceira(222,333);
af.deposita(10000);
Formatando fr = new Formatando();
CalculadorDeImposto calc = new CalculadorDeImposto();
calc.registra(cc);
System.out.println("Cálculo dos impostos sobre as Contas do cliente :" + cliente.getNome() + " AGENCIA :" + cc.getAgencia() + " CONTA :" + cc.getNumero());
System.out.println("-----------------------------------------------------------------------------------------------------------");
System.out.println("Imposto sobre a Conta Corrente: " + fr.getNumeroFormatado(cc.getValorImposto()));
calc.registra(seguro);
System.out.println("Imposto sobre o Seguro: " + fr.getNumeroFormatado(seguro.getValorImposto()));
calc.registra(pp);
System.out.println("Imposto sobre a Conta Poupança: " + fr.getNumeroFormatado(pp.getValorImposto()));
calc.registra(af);
System.out.println("Imposto sobre a Aplicação Financeira: " + fr.getNumeroFormatado(af.getValorImposto()));
System.out.println("---------------------------------");
System.out.println("TOTAL DO IMPOSTO : " + fr.getNumeroFormatado(calc.getTotalImposto()));
}
}