1
resposta

Desafio. Declarando construtores

// Principal

import br.com.alura.screematch.calculos.CalculadoraDeTempo;
import br.com.alura.screematch.calculos.FiltroRecomendacao;
import br.com.alura.screenmatch.modelos.Episodio;
import br.com.alura.screenmatch.modelos.Filme;
import br.com.alura.screenmatch.modelos.Serie;

import java.util.ArrayList;

public class Principal {
    public static void main(String[] args) {
        Filme meufilme = new Filme("Sempre ao seu lado",2009);
        meufilme.setDuracaoEmMinutos(93);
        meufilme.setIncluidoNoPlano(true);
        System.out.println("Duração do Filme: "  + meufilme.getDuracaoEmMinutos());


        meufilme.exibeFichaTecnica();
        meufilme.avalia(9);
        meufilme.avalia(8);
        meufilme.avalia(10);

        System.out.println("Média de avaliações: " + meufilme);
        System.out.println(meufilme.pegaMedia());
    
        Serie cobra= new Serie("Cobra Kai", 2018);
        cobra.exibeFichaTecnica();
        cobra.setTemporadas(6);
        cobra.setEpisodiosPorTemporada(10);
        cobra.setMinutosPorEpisodio(60);
        System.out.println("Duração para maratonar Cobra Kai: "  + cobra.getDuracaoEmMinutos());

        Filme outrofilme = new Filme("Avatar", 2023);
        outrofilme.setDuracaoEmMinutos(200);
        outrofilme.setIncluidoNoPlano(true);
        System.out.println("Duração do Filme: "  + meufilme.getDuracaoEmMinutos());

        CalculadoraDeTempo calculadora = new CalculadoraDeTempo();
        calculadora.inclui(meufilme);
        calculadora.inclui(outrofilme);
        calculadora.inclui(cobra);
        System.out.println(calculadora.getTempoTotal());

        FiltroRecomendacao filtro = new FiltroRecomendacao();
        filtro.filtra(meufilme);

        Episodio  episodio = new Episodio();
        episodio.setNumero(1);
        episodio.setSerie(cobra);
        episodio.setTotalVisualizacoes(300);
        filtro.filtra(episodio);

    var filmeDoSamil = new Filme("Hook,o retorno do Capitão Gancho", 136);
        filmeDoSamil.setDuracaoEmMinutos(136);
        filmeDoSamil.avalia(10);

        ArrayList<Filme> listaDeFilmes = new ArrayList<>();
        listaDeFilmes.add(filmeDoSamil);
        listaDeFilmes.add(meufilme);
        listaDeFilmes.add(outrofilme);
        System.out.println("Tamanho da lista: " + listaDeFilmes.size());
        System.out.println("Primeiro filme: " + listaDeFilmes.get(0).getNome());
        System.out.println(listaDeFilmes);
        System.out.println("toString do filme: " + listaDeFilmes.get(0).toString());

    }
}

// Filme

package br.com.alura.screenmatch.modelos;

import br.com.alura.screematch.calculos.Clasificacao;

public class Filme extends Titulo implements Clasificacao {
    private String diretor;

    public Filme(String nome, int anoDeLancamento) {
        super(nome, anoDeLancamento);
    }

    public String getDiretor(String diretor) {
        return diretor;
    }

    public void  setDiretor(String diretor){
        this. diretor = diretor;
    }

    @Override
    public int getClasificacao() {
        return (int) pegaMedia() / 2;
    }

    @Override
    public String toString() {
        return "Filme: " + this.getNome() + "(" + this.getAnoDeLancamento() + ")";
    }
}

// Serie

package br.com.alura.screenmatch.modelos;

public class Serie extends Titulo {
    private int temporadas;
    private boolean ativa;
    private int episodiosPorTemporada;
    private int minutosPorEpisodio;

    public Serie(String nome, int anoDeLancamento) {
        super(nome, anoDeLancamento);
    }

    public int getTemporadas() {
        return temporadas;
    }

    public void setTemporadas(int temporadas) {
        this.temporadas = temporadas;
    }

    public boolean isAtiva() {
        return ativa;
    }

    public void setAtiva(boolean ativa) {
        this.ativa = ativa;
    }

    public int getEpisodiosPorTemporada() {
        return episodiosPorTemporada;
    }

    public void setEpisodiosPorTemporada(int episodiosPorTemporada) {
        this.episodiosPorTemporada = episodiosPorTemporada;
    }

    public int getMinutosPorEpisodio() {
        return minutosPorEpisodio;
    }

    public void setMinutosPorEpisodio(int minutosPorEpisodio) {
        this.minutosPorEpisodio = minutosPorEpisodio;
    }

    @Override
    public int getDuracaoEmMinutos() {
        return temporadas * episodiosPorTemporada * minutosPorEpisodio;
    }
}
1 resposta

Oiii Samil, tudo bem?

É ótimo poder acompanhar sua evolução e desenvolvimento nos estudos. Seu código está correto. Continue interagindo no fórum Alura seja compartilhando sua evolução nos estudos ou postando suas dúvidas.

Abraços e bons estudos!