0
respostas

[Projeto] Sistema de pagamentos

Olá!

Segue minha resolução?

  • Classe abstrata Pagamento:
package br.com.alura.exercicios;

public abstract class Pagamentos {

    protected double valorCompra;

    public Pagamentos(double valorCompra) {
        this.valorCompra = valorCompra;
    }

    public void setValorCompra(double valorCompra) {
        this.valorCompra = valorCompra;
    }

    public abstract void calcularTaxa();
}
  • Classes CartãoCredito, Boleto e Pix:
package br.com.alura.exercicios;

public class CartaoCredito extends Pagamentos{

    public static final Double TAXA_CREDITO = 3.0;

    public CartaoCredito(double valorCompra) {
        super(valorCompra);
    }

    @Override
    public void calcularTaxa() {
        double taxa = valorCompra * TAXA_CREDITO/100;
        System.out.printf("Pagamento de R$%.2f confirmado no Cartão de Crédito (Taxa:R$%.2f)", valorCompra, taxa);;
    }


}
package br.com.alura.exercicios;

public class Boleto extends Pagamentos{

    private static final Double TAXA_BOLETO = 1.0;

    public Boleto(double valorCompra) {
        super(valorCompra);
    }

    @Override
    public void calcularTaxa() {
        double taxa = valorCompra * TAXA_BOLETO/100;
        System.out.printf("Pagamento de R$%.2f confirmado no boleto. (Taxa:R$%.2f)", valorCompra, taxa);
    }
}
package br.com.alura.exercicios;

public class Pix extends Pagamentos{

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

    @Override
    public void calcularTaxa() {

        System.out.printf("Pagamento de R$%.2f confirmado no Pix.", valorCompra);;
    }
}
  • Main para rodar a aplicação:
package br.com.alura.exercicios;

public class Main {
    public static void main(String[] args) {

        Pagamentos credito = new CartaoCredito(250);
        Pagamentos boleto = new Boleto(500);
        Pagamentos pix = new Pix(300);
        credito.calcularTaxa();
        System.out.println();
        boleto.calcularTaxa();
        System.out.println();
        pix.calcularTaxa();
    }
}