1
resposta

ScreenMatch - Desafio

Segue a resposta ao desafio.
Classe Filme:

public class Filme {
    String nome;
    int anoDeLancamento;
    int duracaoEmMinutos;
    boolean incluidoNoPlano;
    double somaDasAvaliacoes = 0.0;
    int totalDeAvaliacoes = 0;

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

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

    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.println("Avaliação:\t\t\t" + pegaMedia());
        if(incluidoNoPlano){
            System.out.println("Incluído no plano.");
        } else {
            System.out.println("Não incluído no plano.");
        }
        System.out.println("========================================================");
    }
}

Classe Main:

//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
public class Main {
    public static void main(String[] args) {
        Filme filme1 = new Filme();
        filme1.nome = "Forest Gump: O Contador de Histórias";
        filme1.anoDeLancamento = 1994;
        filme1.duracaoEmMinutos = 142;
        filme1.incluidoNoPlano = true;

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

        filme1.exibeFichaTecnica();
        }
    }
1 resposta

Olá, Raoni! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de métodos para organizar a lógica das avaliações, utilizou muito bem condicionais para controlar o cálculo da média e ainda compreendeu a importância da exibição formatada para tornar a ficha técnica mais clara e informativa.

Uma dica interessante para o futuro é aplicar encapsulamento com getters e setters. Assim:

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

    public String getNome() {
        return nome;
    }

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

    // demais getters e setters...
}

Isso faz o código ficar mais seguro e alinhado às boas práticas de orientação a objetos.

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!