1
resposta

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

Já estava fazendo o desafio enquanto estava assistindo às aulas pois acredito que assimilo melhor o conteúdo dessa maneira, seguem abaixo os códigos da classe "Movie" cuja se refere ao modelo de um filme qualquer e a classe "Main" que é onde os objetos e métodos da "Movie" são instanciados e chamados:

public class Movie {
    double mediaNotas;
    double somaNotas;
    int totalNotas;
    String nomeFilme;
    int tempoDeDuracaoMinutos;
    int anoDeLancamento;
    boolean incluidoNoPlano;

    void avaliaFilme(double nota){
        somaNotas += nota;
        totalNotas++;
    }

    double obtermediaNotas(){
        mediaNotas = somaNotas/totalNotas;
        return mediaNotas;
    }

    void exibeInfoFilme(){
        System.out.println("Nome do filme: " + nomeFilme);
        System.out.println("Ano de lançamento: " + anoDeLancamento);
        System.out.println("Duração (em minutos): " + tempoDeDuracaoMinutos);
        System.out.println("Filme incluído no plano: " + incluidoNoPlano);
        System.out.println("Nota do Filme: " + obtermediaNotas());
        System.out.println("Total de avaliações: " + totalNotas);
    }
}
public class Main {
    public static void main(String[] args) {
        Movie myMovie = new Movie();
        myMovie.nomeFilme = "La la land";
        myMovie.anoDeLancamento = 2016;
        myMovie.tempoDeDuracaoMinutos = 128;
        myMovie.incluidoNoPlano = true;

        myMovie.avaliaFilme(7);
        myMovie.avaliaFilme(10);
        myMovie.avaliaFilme(9);
        myMovie.avaliaFilme(8);

        myMovie.exibeInfoFilme();
        myMovie.obtermediaNotas();
    }
}
1 resposta

Olá, Gabriel! Como vai?

Muito bem! Continue resolvendo os desafios e compartilhando com a comunidade Alura.

Observei que você explorou o uso de classes para modelar entidades reais, utilizou muito bem os métodos para organizar o comportamento da aplicação e ainda compreendeu a importância dos atributos para armazenar o estado e facilitar o controle de dados ao longo da execução.

Uma dica interessante para o futuro é usar construtores personalizados para inicializar objetos com valores definidos desde o início. Dessa forma:

public Movie(String nome, int ano, int duracao, boolean plano) {
    nomeFilme = nome;
    anoDeLancamento = ano;
    tempoDeDuracaoMinutos = duracao;
    incluidoNoPlano = plano;
}

Usando:

Movie myMovie = new Movie("La la land", 2016, 128, true);

Isso faz com que o código fique mais fácil de manter, especialmente ao criar múltiplos objetos com diferentes valores.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Alguns materiais estão em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

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!