1
resposta

Fiz a classe de forma um pouco diferente

acredito que essa forma tem o mesmo sentido, mas simplifica um pouco a lógica, o ato de avaliar um filme é um só, e a média assim estaria guardada na instancia e acessivel na ficha técnica do filme sem necessidade de chamar um método próprio pra isso, espero que gostei :)

public class Movie {

    String name;
    int releaseYear;
    boolean includedInPlan;
    double rating;
    int allRatings;
    int duration;
    double allGrades = 0;

    void showTechLog() {
        System.out.println("Nome do filme : " + name);
        System.out.println("Ano de lançamento : " + releaseYear);
        System.out.println("O filme está incluido no plano:  " + includedInPlan);
        System.out.println("Avaliação média : " + rating);
        System.out.println("Duração em minutos: " + duration);
        System.out.println("Numero de avaliações : " + allRatings);
    }

    void rate(double grade){
        allRatings++;
        allGrades+= grade;
        rating = allGrades / allRatings;
    }

}

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Oi, Lucino! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Sua implementação ficou bem interessante — centralizar o cálculo da média dentro da instância realmente deixa o código mais limpo e fácil de entender. O método rate faz sentido do jeito que está, mantendo a responsabilidade dentro da classe Movie.

Uma dica interessante para o futuro é usar o método toString() para mostrar as informações da classe sem precisar criar um método específico para isso. Veja este exemplo:


@Override
public String toString() {
    return "Filme: " + name + " (" + releaseYear + "), Avaliação média: " + rating;
}

Esse método permite imprimir o objeto diretamente, facilitando depuração e leitura no console.

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