Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

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();
    }
}
2 respostas

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!
solução!

Opa. Valeu pelas dicas! Não tem problema ter material em inglês, tenho bastante proficiência no idioma.
Que bom que tem um jeito mais fácil de declarar um objeto de um classe.