1
resposta

Multa por atraso

    String titulo;
    int diasAtraso;

    private double calculaMulta(int diasAtraso){
        return diasAtraso * 2.5;
    }

    public void exibeDetalhes(){
        System.out.printf("Livro: %s | multa por %d dias de atraso: R$ %.2f",
                titulo, diasAtraso, calculaMulta(diasAtraso));
    }
}
public class Main {
    public static void main(String[] args) {
        Livro livro = new Livro();
        livro.titulo = "Jogos vorazes";
        livro.diasAtraso = 5;

        livro.exibeDetalhes();

    }
}
1 resposta

Olá, Caio! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de métodos para encapsular cálculos, utilizou muito bem o System.out.printf para formatar a saída e ainda compreendeu a importância de organizar os atributos dentro da classe para dar clareza ao código.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Uma dica interessante para o futuro é aplicar construtores para inicializar os atributos já no momento da criação do objeto. Assim:

public class Livro {
    String titulo;
    int diasAtraso;

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

    private double calculaMulta(int diasAtraso){
        return diasAtraso * 2.5;
    }

    public void exibeDetalhes(){
        System.out.printf("Livro: %s | multa por %d dias de atraso: R$ %.2f",
                titulo, diasAtraso, calculaMulta(diasAtraso));
    }
}

public class Main {
    public static void main(String[] args) {
        Livro livro = new Livro("Jogos vorazes", 5);
        livro.exibeDetalhes();
    }
}

Isso faz com que o código fique mais limpo e seguro, evitando a necessidade de atribuir valores diretamente após a criação do objeto.

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!