1
resposta

Faça como eu fiz: encapsulando o projeto

Segue a resposta do exercício proposto: incrementar os modificadores de acesso e inserir os getters e setters na Classe Filme.

Package: br.com.alura.screenmatch.modelo
Class: Filme

package br.com.alura.screenmatch.modelo;

public class Filme {
    private String nome;
    private int anoDeLancamento;
    private int duracaoEmMinutos;
    private boolean incluidoNoPlano;
    private double somaDasAvaliacoes;
    private int totalDeAvaliacoes;

    public String getNome() {
        return nome;
    }

    public int getAnoDeLancamento() {
        return anoDeLancamento;
    }

    public int getDuracaoEmMinutos() {
        return duracaoEmMinutos;
    }

    public boolean isIncluidoNoPlano() {
        return incluidoNoPlano;
    }

    public int getTotalDeAvaliacoes() {
        return totalDeAvaliacoes;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

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

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

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

    public double pegaMedia() {
        if (totalDeAvaliacoes != 0) {
            return somaDasAvaliacoes/totalDeAvaliacoes;
        } else {
            return 0.0;
        }
    }

    public void avalia(double avaliacao){
        somaDasAvaliacoes += avaliacao;
        totalDeAvaliacoes++;
    }

    public void exibeFichaTecnica(){
        System.out.println("========================================================");
        System.out.println("Nome do filme:\t\t" + nome);
        System.out.println("Ano de lançamento:\t" + anoDeLancamento);
        System.out.println("Duração em minutos:\t" + duracaoEmMinutos);
        System.out.printf("Avaliação:\t\t\t%.1f\n", pegaMedia());
        if(incluidoNoPlano){
            System.out.println("Incluído no plano.");
        } else {
            System.out.println("Não incluído no plano.");
        }
        System.out.println("========================================================\n");
    }
}

Class: Main

import br.com.alura.screenmatch.modelo.Filme;


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

        filme1.setNome("Forest Gump");
        filme1.setAnoDeLancamento(1994);
        filme1.setDuracaoEmMinutos(142);
        filme1.setIncluidoNoPlano(true);

        filme1.avalia(8.7);
        filme1.avalia(9.0);
        filme1.avalia(9.2);
        filme1.avalia(9.1);

        filme1.exibeFichaTecnica();

        Filme filme2 = new Filme();
        filme2.setNome("The Name of the Rose");
        filme2.setAnoDeLancamento(1986);
        filme2.setDuracaoEmMinutos(126);
        filme2.setIncluidoNoPlano(false);

        filme2.avalia(7.7);
        filme2.avalia(9.0);
        filme2.avalia(9.2);
        filme2.avalia(8.6);

        filme2.exibeFichaTecnica();
        }
    }

Output:

//========================================================
Nome do filme:		Forest Gump
Ano de lançamento:	1994
Duração em minutos:	142
Avaliação:		9,0
Incluído no plano.
//========================================================

//========================================================
Nome do filme:		The Name of the Rose
Ano de lançamento:	1986
Duração em minutos:	126
Avaliação:		8,6
Não incluído no plano.
//========================================================


Process finished with exit code 0
1 resposta

Olá, Raoni! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de modificadores de acesso para proteger os atributos da classe, utilizou muito bem os getters e setters para manipular os dados de forma controlada e ainda compreendeu a importância de métodos auxiliares como avalia e pegaMedia para enriquecer a lógica da aplicação.

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!