Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] Avaliação de Filmes

Movie :

public class Movie {
    private String name;
    private List<Integer>  rating = new ArrayList<>();
    private double ratingAverage = 0;

    public Movie(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Average Rating for "+this.name+ ": "+ratingAverage;
    }

    public void rateMovie(int score){
        rating.add(score);
        calculateAvgRating();
    }

    private void calculateAvgRating(){
        double ratingSum =  this.rating.stream()
                .reduce(0, Integer::sum);
        int totalRatings = this.rating.size();
        this.ratingAverage = ratingSum/totalRatings;
    }

    public String getName() {
        return name;
    }

    public List<Integer> getRating() {
        return rating;
    }

    public double getRatingAverage() {
        return ratingAverage;
    }
}

Main :

 public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        System.out.println("Enter the movie name : ");
        String movieName = scanner.nextLine();
        Movie movie =  new Movie(movieName);
        movie.rateMovie(5);
        movie.rateMovie(3);
        movie.rateMovie(2);
        movie.rateMovie(4);
        movie.rateMovie(3);
        movie.rateMovie(1);
        movie.rateMovie(3);
        System.out.println(movie);
    }
2 respostas
solução!

Oi, Igor! Como vai?

Do jeito que você explicou, chamou atenção o uso correto de encapsulamento, mantendo os atributos privados e centralizando o cálculo da média no método calculateAvgRating, o que deixa a classe Movie mais organizada e fácil de manter.

Uma dica interessante para o futuro e validar a nota antes de adicionar na lista, evitando valor fora do esperado. Veja este exemplo:


public void rateMovie(int score) {
    if (score >= 1 && score <= 5) {
        rating.add(score);
        calculateAvgRating();
    }
}

Esse código garante que apenas notas entre 1 e 5 sejam consideradas, evitando medias incorretas.

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

Muito obrigado, não me atentei