1
resposta

[Projeto] Meu filme favorito

Aqui está meus códigos que usei para o desafio. Se puder analisar e dar um feedback fique à vontade.

Class Filme

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

    void exibirFichaTecnica(){
        System.out.println("Nome do filme:" + nome);
        System.out.println("Ano de lançamento: " + anoDeLancamento);
        System.out.println("Duração do filme: " + duracaoEmMinutos + " minutos");
        System.out.println("O filme está no plano?: " +incluidoNoPlano);
    }

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

    double pegaMedia(){
        return  somaDasAvaliacoes / totalDeAvaliacoes;
    }

}

Class Principal

public class Principal {
    public static void main(String[] args) {
        Filme meuFilmePreferido = new Filme();
        meuFilmePreferido.nome = "Mamma Mia";
        meuFilmePreferido.anoDeLancamento = 2008;
        meuFilmePreferido.duracaoEmMinutos = 108;
        meuFilmePreferido.incluidoNoPlano = true;

        meuFilmePreferido.exibirFichaTecnica();
        meuFilmePreferido.avaliar(8);
        meuFilmePreferido.avaliar(7);
        meuFilmePreferido.avaliar(10);

        System.out.println(meuFilmePreferido.somaDasAvaliacoes);
        System.out.println(meuFilmePreferido.totalDeAvaliacoes);
        System.out.println(meuFilmePreferido.pegaMedia());

    }
}
1 resposta

Olá, Anna! Como vai?

Primeiramente, parabéns pelo seu trabalho! Analisando o seu código, ele está bem estruturado e cumpre com o que foi solicitado na atividade. Aqui estão alguns pontos que você pode considerar para melhorar ainda mais:

  1. Encapsulamento: Atualmente, os atributos da classe Filme são públicos, o que significa que podem ser acessados e modificados diretamente de fora da classe. Uma boa prática em programação orientada a objetos é usar encapsulamento, tornando os atributos privados e fornecendo métodos públicos (getters e setters) para acessá-los e modificá-los. Isso ajuda a proteger os dados e a manter o controle sobre como eles são alterados.

    public class Filme {
        private String nome;
        private int anoDeLancamento;
        private boolean incluidoNoPlano;
        private double somaDasAvaliacoes;
        private int totalDeAvaliacoes;
        private int duracaoEmMinutos;
    
        // Getters e setters
        public String getNome() {
            return nome;
        }
    
        public void setNome(String nome) {
            this.nome = nome;
        }
    
        // Repita para os outros atributos...
    }
    
  2. Formatação da Saída: Quando você exibe a média das avaliações, pode formatar o resultado para mostrar apenas duas casas decimais, o que melhora a legibilidade.

    System.out.printf("Média das avaliações: %.2f%n", meuFilmePreferido.pegaMedia());
    

Seu código está bem próximo do que é esperado para o exercício, e essas sugestões são apenas para refinar ainda mais suas habilidades em Java e orientação a objetos.

Bons estudos!