// 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();
meufilme.setNome("Sempre ao seu lado");
meufilme.setAnoDeLancamento(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 lost = new Serie();
lost.setNome("Cobra Kai");
lost.setAnoDeLancamento(2018);
lost.exibeFichaTecnica();
lost.setTemporadas(6);
lost.setEpisodiosPorTemporada(10);
lost.setMinutosPorEpisodio(60);
System.out.println("Duração para maratonar Cobra Kai: " + lost.getDuracaoEmMinutos());
Filme outrofilme = new Filme();
outrofilme.setNome("Avatar");
outrofilme.setAnoDeLancamento(2023);
outrofilme.setDuracaoEmMinutos(100);
outrofilme.setIncluidoNoPlano(true);
System.out.println("Duração do Filme: " + meufilme.getDuracaoEmMinutos());
CalculadoraDeTempo calculadora = new CalculadoraDeTempo();
calculadora.inclui(meufilme);
calculadora.inclui(outrofilme);
calculadora.inclui(lost);
System.out.println(calculadora.getTempoTotal());
FiltroRecomendacao filtro = new FiltroRecomendacao();
filtro.filtra(meufilme);
Episodio episodio = new Episodio();
episodio.setNumero(1);
episodio.setSerie(lost);
episodio.setTotalVisualizacoes(300);
filtro.filtra(episodio);
var filmeDoSamil = new Filme();
filmeDoSamil.setDuracaoEmMinutos(136);
filmeDoSamil.setNome("Hook,o retorno do Capitão Gancho");
filmeDoSamil.setAnoDeLancamento(1991);
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());
}
}
// class 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 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() + ")";
}
}