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!

1
resposta

Faça como eu fiz: projeto com orientação a objetos

metodo movie:

package com.example;

public class Movie {
    String name;
    int yearOfRelease;
    boolean includedInThePlan;
    double sumOfRatings; // soma das avaliações;
    int totalReviews;
    int durationInMinutes;

    void showTechnical() {
        System.out.println("\nName: " + this.name);
        System.out.println("Year of release: " + this.yearOfRelease);
       
    }

    void evaluates(double note) {
        sumOfRatings += note;
        totalReviews++;
    }

    double getsTheAverage() {
        return sumOfRatings / totalReviews;
    }

}

A seguir, Main:

package com.example;

public class Main {
    public static void main(String[] args) {
        Movie theHangover = new Movie();
        theHangover.name = "The Hangover";
        theHangover.yearOfRelease = 1999;
        theHangover.durationInMinutes = 120;

        theHangover.showTechnical();
        theHangover.evaluates(8);
        theHangover.evaluates(5);
        theHangover.evaluates(10);
        System.out.println("Sum of ratings: " + theHangover.sumOfRatings); // Soma das avaliaçoes;
        System.out.println("Total Reviews: " + theHangover.totalReviews);
        System.out.println(theHangover.getsTheAverage());

    }
}

Eu criei as variáveis em inglês, pq quero me habituar ao idioma e aprender. Esse é um dos passos.

1 resposta

Olá, Débora! Como vai?

Parabéns pela resolução da atividade!

Vi que você explorou a classe Movie para organizar informações com Java, utilizou muito bem o método evaluates para acumular avaliações e ainda compreendeu a importância da média calculada para representar o desempenho do filme.

Uma dica interessante para o futuro é aplicar encapsulamento nos atributos, tornando-os privados e acessíveis apenas por métodos get e set. Assim:

public class Movie {
    private String name;
    private int yearOfRelease;
    private boolean includedInThePlan;
    private double sumOfRatings;
    private int totalReviews;
    private int durationInMinutes;

    public void showTechnical() {
        System.out.println("\nName: " + this.name);
        System.out.println("Year of release: " + this.yearOfRelease);
    }

    public void evaluates(double note) {
        sumOfRatings += note;
        totalReviews++;
    }

    public double getsTheAverage() {
        return sumOfRatings / totalReviews;
    }

    // Getters e Setters
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
}

Isso faz o código seguir boas práticas de orientação a objetos, protegendo os dados e permitindo maior controle sobre como são acessados e modificados.

Se quiser aprofundar ainda mais, algumas boas práticas são:

  • Construtores: inicializar objetos com valores obrigatórios desde o início.
  • Validação de dados: garantir que notas ou anos de lançamento sejam válidos.
  • Documentação com Javadoc: explicar o propósito de cada método e atributo.

Ah, uma pergunta: você acha que escrever variáveis e métodos em inglês ajuda mais na prática de programação e leitura de documentação ou prefere manter em português para maior clareza inicial?

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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