Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Projeto] Multa por atraso

package classes;

public class PedidoLivro {
    private String titulo;
    private int diasAtraso;

    public PedidoLivro(String titulo, int diasAtraso) {
        this.titulo = titulo;
        this.diasAtraso = diasAtraso;
    }

    public void exibirDetalhes() {
        double multa = calcularMulta();
        if (this.diasAtraso > 0) {
            System.out.printf("Livro: %s | Multa por %d dias de atraso: R$%.2f%n", this.titulo, this.diasAtraso, multa);
        } else if (diasAtraso < 0) {
            System.out.printf("Livro: %s | Número de dias inválido!%n", this.titulo);
        } else {
            System.out.printf("Livro: %s | Sem multa por atraso%n", this.titulo);
        }
    }

    public double calcularMulta() {
        return this.diasAtraso * 2.5;
    }
}

import classes.PedidoLivro;

public class MainExerciciosMultaAtraso {
    public static void main(String[] args) {
        PedidoLivro livro1 = new PedidoLivro("Dom Casmurro", 0);
        livro1.exibirDetalhes();
    }
}
1 resposta

Olá, Cauan! Como vai?

Sua implementação ficou bem organizada, com a classe PedidoLivro separando os dados do livro e o método calcularMulta() cuidando do cálculo da multa. Um ponto legal é que você também tratou o caso de diasAtraso igual a zero e menor que zero, o que deixa o programa mais completo.

Uma dica é ajustar o método calcularMulta() para evitar que uma quantidade negativa de dias gere uma multa negativa. Você pode fazer essa validação antes do cálculo, retornando 0 quando os dias forem inválidos ou sem atraso. Como você adaptaria esse código para testar também um livro com 5 dias de atraso e outro com dias negativos?

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