1
resposta

[Projeto] Projeto multa por atraso

public class Livro {

    private String titulo;
    private LocalDate dataDevolucao;
    private double valorMulta;

    public Livro(String titulo, LocalDate dataDevolucao) {
        this.titulo = titulo;
        this.dataDevolucao = dataDevolucao;
    }

    public void devolucao(LocalDate data){

        long dias = ChronoUnit.DAYS.between(dataDevolucao, data);

        if(dias > 10){
            Long diasPassados = dias - 10 ;
            valorMulta += diasPassados * 2.50;
        }

        System.out.printf("Livro: %s | Multa por %d dias de atraso: R$ %.2f\n  ",titulo,dias,valorMulta);
    }

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public double getValorMulta() {
        return valorMulta;
    }

    public void setValorMulta(double valorMulta) {
        this.valorMulta = valorMulta;
    }

    public LocalDate getDataDevolucao() {
        return dataDevolucao;
    }

    public void setDataDevolucao(LocalDate dataDevolucao) {
        this.dataDevolucao = dataDevolucao;
    }
}
public class Main {
    static void main(String[] args) {

    Livro l1 = new Livro("Dom Casmurro", LocalDate.of(2026,01,20));

    l1.devolucao(LocalDate.now());

    }

}
1 resposta

Oi, José! Como vai?

Agradeço por compartilhar.

Gostei da sua análise e da organização da classe, importante como você usou atributos privados e o método para calcular a multa com base na data de devolução, alinhado ao uso de classes e métodos em Java. Sua ideia faz sentido, veja como ajustar o cálculo para evitar acúmulo de multa quando o método é chamado mais de uma vez.

Siga em frente, você está aplicando bem os conceitos de orientação a objetos e isso fortalece seu aprendizado.

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