0
respostas

[Projeto] Sistema de Pagamentos

**O decimal format eu poderia ter colocado em um metodo final dentro de pagamento, para ser menos verboso e trabalhoso na hora de fazer uma manutenção nesse codigo,visto que todas as outras classes herdariam, sem poder ter um override no metodo para ser modificado, mas eu preferi não fazer haha, ficava mais legivel , mas acho que assim ficou mais simples na hora de eu fazer **

public class Main {
    static void main(String[] args) {
    Pagamento cartao = new Cartao(2500);
    Pagamento boleto = new Boleto(3000);
    Pagamento pix = new Pix(5000);

    cartao.confirmarPagamento();
    boleto.confirmarPagamento();
    pix.confirmarPagamento();


    }
}
public abstract class Pagamento {
    private double valor;

    public Pagamento(double valor) {
        this.valor = valor;
    }
    public abstract double calculaTaxa();
    public abstract void confirmarPagamento();

    public double getValor() {
        return valor;
    }
}
import java.text.DecimalFormat;

public class Cartao extends Pagamento{
    final double taxa = 10;
    public Cartao(double valor) {
        super(valor);
    }


    @Override
    public double calculaTaxa() {

        return getValor()*(taxa/100);
    }

    @Override
    public void confirmarPagamento() {
        DecimalFormat resultadoFormatado = new DecimalFormat("0.00");
        double resultado = calculaTaxa();
        System.out.println("Pagamento de : R$" + resultadoFormatado.format(getValor()) + " Confirmado no cartão  (Taxa: R$" + resultadoFormatado.format(resultado) + ")");
        System.out.println("\n");
    }


}
import java.text.DecimalFormat;

public class Boleto extends Pagamento{
    final double taxa = 5;
    public Boleto(double valor) {
        super(valor);
    }

    @Override
    public double calculaTaxa() {
        return getValor()*(taxa/100);
    }

    @Override
    public void confirmarPagamento() {
        DecimalFormat resultadoFormatado = new DecimalFormat("0.00");
         double resultado = calculaTaxa();
        System.out.println("Boleto de R$" + resultadoFormatado.format(getValor()) + " Gerado com sucesso (Taxa: R$" + resultadoFormatado.format(resultado) + ")");
        System.out.println("\n");
    }
}
import java.text.DecimalFormat;

public class Pix extends Pagamento{

    public Pix(double valor) {
        super(valor);
    }

    @Override
    public double calculaTaxa() {
        return 0;
    }

    @Override
    public void confirmarPagamento() {
        DecimalFormat resultadoFormatado = new DecimalFormat("0.00");
        System.out.println("Pagamento via pix de R$" +resultadoFormatado.format( getValor()) + "Confirmado");
        System.out.println("\n");
    }
}