Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

2
respostas

Faça como eu fiz: encapsulando o projeto

package br.com.alura.screenmatch.modelos;

public class Filme {
    private String titulo;
    private int anoDeLancamento;
    private int duracaoEmMinutos;
    private boolean incluidoNoPlano;
    private double somaDasAvaliacoes;
    private int totaldeAvaliacoes;

    public int getTotaldeAvaliacoes() {
        return totaldeAvaliacoes;
    }

    public String getTitulo() {
        return titulo;
    }

    public int getAnoDeLancamento() {
        return anoDeLancamento;
    }

    public int getDuracaoEmMinutos() {
        return duracaoEmMinutos;
    }

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

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

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

    public void setDuracaoEmMinutos(int duracaoEmMinutos) {
        this.duracaoEmMinutos = duracaoEmMinutos;
    }

    public void exibeFichatecnica() {
        System.out.printf("\nTítulo: %s%n", titulo);
        System.out.println("\nFicha Técnica:");
        System.out.printf("\nAno de lançamento: %d%n", anoDeLancamento);
        System.out.printf("Duraçao: %d mínutos %n", duracaoEmMinutos);
        System.out.printf("Incluido no plano: %b%n", incluidoNoPlano);
    }

    public void avalia(double nota) {
        somaDasAvaliacoes += nota;
        totaldeAvaliacoes++;
    }

    public double calculaMedia() {
        return somaDasAvaliacoes / totaldeAvaliacoes;
    }
}
2 respostas
import br.com.alura.screenmatch.modelos.Filme;

public class Principal {
    public static void main(String[] args) {
        Filme filme1 = new Filme();

        filme1.setTitulo("The Dirt – Confissões do Mötley Crüe");
        filme1.setAnoDeLancamento(2019);
        filme1.setDuracaoEmMinutos(108);
        filme1.setIncluidoNoPlano(true);


        filme1.exibeFichatecnica();

        filme1.avalia(8);
        filme1.avalia(9);
        filme1.avalia(7.5);
        filme1.avalia(4);
        filme1.avalia(3.5);

        System.out.println("\nAvaliações: " + filme1.getTotaldeAvaliacoes());
        System.out.println("Média de avaliações: " + filme1.calculaMedia());


    }
}

Oi, João. Tudo bem?

A classe Filme está organizada com atributos privados e métodos públicos para acesso e modificação, o que garante maior controle sobre os dados e evita que sejam alterados diretamente fora da classe. Esse tipo de prática é essencial quando trabalhamos com orientação a objetos em Java, especialmente em projetos maiores, porque ajuda a manter a consistência e a segurança das informações.

Você já pensou em como poderia expandir esse projeto? Talvez adicionar validações nos setters, como impedir que a duração seja negativa ou que o ano de lançamento seja maior que o ano atual. Isso deixaria a classe ainda mais robusta e preparada para lidar com diferentes cenários.

Continue compartilhando seus códigos e ideias aqui no fórum, estamos à disposição para trocar experiências e aprender juntos.

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