Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[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();
    }
}
1 resposta
solução!

Olá, Victor! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso da classe abstrata para estruturar o comportamento em Java, utilizou muito bem a sobrescrita de métodos para aplicar regras específicas em cada forma de pagamento e ainda compreendeu a importância da herança para reaproveitar atributos e lógica comum.

Uma dica interessante para o futuro é tornar o método calcularTaxa mais flexível, retornando o valor da taxa em vez de apenas imprimir. Assim, você pode reutilizar esse cálculo em outras partes da aplicação:

public abstract class Pagamentos {
    protected double valorCompra;

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

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

    public abstract double calcularTaxa();
}

E nas subclasses:

@Override
public double calcularTaxa() {
    return valorCompra * TAXA_CREDITO / 100;
}

Isso faz com que o programa seja mais modular, permitindo que você use o valor da taxa em relatórios, cálculos adicionais ou até em testes automatizados.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!