Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Encapsulando o projeto , minha resposta

Eu propositalmente repeti a Impressão da ficha técnica na classe Principal só para fazer uso dos getters com o propósito de treino e memorização.

Se eu fosse utiliza apenas os getters para a impressão da ficha técnica, eu poderia colocar o pega média direto em um get ficando assim: public double getPegaMedia() {return somaDasAvaliacoes / totalDeAvaliacoes;}, mas está do jeito que está pelo simples fato de que eu não quis utilizar só os getters na impressão dentro do código da classe Filme, mesmo sabendo que eu poderia ter feito.

package br.com.alura.ScreenMatch.modelos;

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

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

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

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

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

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

    double pegaMedia() {
        return somaDasAvaliacoes / totalDeAvaliacoes;
    }

    private String incluidoNoPlano(boolean incluidoNoPlano) {
        String resposta;
        if (incluidoNoPlano) {
            resposta = "Sim";
        } else {
            resposta = "Não";
        }
        return resposta;
    }
    
    //Impressão sem gettrs
    public void exibeFichaTecnica() {
        System.out.printf("******************************************%n%n");
        System.out.println("Nome do filme: " + nome);
        System.out.println("Ano de lançamento: " + anoDeLancamento);
        System.out.println("Duração de filme em minutos: " + duracaoEmMinutos + " min");
        System.out.printf("Média de avaliação do filme: %.2f%n", pegaMedia());
        System.out.println("Total de avaliações: " + totalDeAvaliacoes);
        System.out.println("Incluído no plano: " + incluidoNoPlano(incluidoNoPlano));
        System.out.printf("%n******************************************");
    }

    //Declaração dos gettrs

    public String getIncluidoNoPlano() {
        return incluidoNoPlano(incluidoNoPlano);
    }

    public double getPegaMedia() {
        return pegaMedia();
    }

    public String getNome() {
        return nome;
    }

    public int getAnoDeLancamento() {
        return anoDeLancamento;
    }

    public int getDuracaoEmMinutos() {
        return duracaoEmMinutos;
    }

    public int getTotalDeAvaliacoes() {
        return totalDeAvaliacoes;
    }
}
import br.com.alura.ScreenMatch.modelos.Filme;

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

        filmeTheMatrix.setNome("The Matrix");
        filmeTheMatrix.setAnoDeLancamento(1999);
        filmeTheMatrix.setDuracaoEmMinutos(135);
        filmeTheMatrix.setIncluidoNoPlano(true);

        filmeTheMatrix.avalia(10);
        filmeTheMatrix.avalia(5.1);
        filmeTheMatrix.avalia(1);
        filmeTheMatrix.avalia(8.6);
        filmeTheMatrix.avalia(3);
        filmeTheMatrix.avalia(7);
        filmeTheMatrix.avalia(4.5);
        filmeTheMatrix.avalia(9);
        filmeTheMatrix.avalia(2.8);
        filmeTheMatrix.avalia(6);

        filmeTheMatrix.exibeFichaTecnica();

        //Impressão da ficha técnica via gettrs
        System.out.println();
        System.out.printf("-------------------------------------------%n%n");
        System.out.println("Nome do filme: " + filmeTheMatrix.getNome());
        System.out.println("Ano de lançamento: " + filmeTheMatrix.getAnoDeLancamento());
        System.out.println("Duração de filme em minutos: " + filmeTheMatrix.getDuracaoEmMinutos() + " min");
        System.out.printf("Média de avaliação do filme: %.2f%n", filmeTheMatrix.getPegaMedia());
        System.out.println("Total de avaliações: " + filmeTheMatrix.getTotalDeAvaliacoes());
        System.out.println("Incluído no plano: " + filmeTheMatrix.getIncluidoNoPlano());
        System.out.printf("%n-------------------------------------------");
    }
}
1 resposta
solução!

Boa tarde, Rodrigo! Como vai?

Parabéns pelo resultado na resolução do desafio, ficou ótimo!

Também agradeço por compartilhar seu código com os demais estudantes, com certeza vai ajudar nos estudos de todas as pessoas que estão aprendendo este mesmo assunto.

Continue mergulhando em tecnologia e se tiver dúvidas, conte com o fórum.

Abraços e bons estudos!