1
resposta

[Sugestão] Faça como eu fiz: encapsulando o projeto

package br.com.alura.screenmatch.modelos;

public class Movie {
    private double mediaNotas;
    private double somaNotas; //encapsulando a soma de notas e o total de notas para que ninguem altere a avaliação dos filmes e a média.
    private int totalNotas;
    private String nomeFilme;
    private int tempoDeDuracaoMinutos;
    private int anoDeLancamento;
    private boolean incluidoNoPlano; // encapsulando o verificador de pl

    public int getTotalNotas() {
        return totalNotas;
    }

    public String getNomeFilme() {
        return nomeFilme;
    }

    public int getTempoDeDuracaoMinutos() {
        return tempoDeDuracaoMinutos;
    }

    public int getAnoDeLancamento() {
        return anoDeLancamento;
    }

    public boolean isIncluidoNoPlano() {
        return incluidoNoPlano;
    }

    public void setIncluidoNoPlano(boolean incluidoNoPlano) {
        this.incluidoNoPlano = incluidoNoPlano;
    }

    public void setAnoDeLancamento(int anoDeLancamento) {
        this.anoDeLancamento = anoDeLancamento;
    }

    public void setTempoDeDuracaoMinutos(int tempoDeDuracaoMinutos) {
        this.tempoDeDuracaoMinutos = tempoDeDuracaoMinutos;
    }

    public void setNomeFilme(String nomeFilme) {
        this.nomeFilme = nomeFilme;
    }

    public void avaliaFilme(double nota){
        somaNotas += nota;
        totalNotas++;
    }

    public double obtermediaNotas(){
        mediaNotas = somaNotas/totalNotas;
        return mediaNotas;
    }

    public void exibeInfoFilme(){
        System.out.println("Nome do filme: " + nomeFilme);
        System.out.println("Ano de lançamento: " + anoDeLancamento);
        System.out.println("Duração (em minutos): " + tempoDeDuracaoMinutos);
        System.out.println("Filme incluído no plano: " + incluidoNoPlano);
        System.out.println("Nota do Filme: " + obtermediaNotas());
        System.out.println("Total de avaliações: " + totalNotas);
    }
}
import br.com.alura.screenmatch.modelos.Movie;

public class Main {
    public static void main(String[] args) {
        Movie myMovie = new Movie();
        myMovie.setNomeFilme("La la land");
        myMovie.setAnoDeLancamento(2016);
        myMovie.setTempoDeDuracaoMinutos(128);
        myMovie.setIncluidoNoPlano(true);

        myMovie.avaliaFilme(7);
        myMovie.avaliaFilme(10);
        myMovie.avaliaFilme(9);
        myMovie.avaliaFilme(8);

        myMovie.exibeInfoFilme();
        myMovie.obtermediaNotas();
    }
}



1 resposta

Oi, Gabriel! Como vai?

Gostei de como você encapsulou os atributos para proteger a lógica de avaliação e manter o controle das notas. Isso deixa o código mais seguro e organizado, além de facilitar a manutenção no futuro.

Continue firme nos estudos.

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