//Main -> Principal
import br.com.alura.screenmatch.calculos.CalculadoraDeTempo;
import br.com.alura.screenmatch.calculos.FiltroRecomendacao;
import br.com.alura.screenmatch.modelos.Epsodio;
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("O poderso Chefão");
meuFilme.setAnoDeLancamento(1980);
meuFilme.setDuracaoEmMinutos(90);
meuFilme.setIncluidoNoPlano(true);
/*Consumindo método Exibe br.com.alura.screenmatch.modelos.Filme*/
meuFilme.exibeFime();
/*Carga das Avaliações*/
meuFilme.avalia(8);
meuFilme.avalia(10);
meuFilme.avalia(9);
meuFilme.avalia(5);
meuFilme.avalia(5);
meuFilme.avalia(10);
System.out.println("Soma das Avaliações -> " + meuFilme.getSomaDasAvaliacoes());
System.out.println("Total de Avaliações -> " + meuFilme.getTotalDeAvaliacao());
System.out.println("Média das Avaliações -> " + meuFilme.pegaMedia());
Serie lost = new Serie();
lost.setNome("Lost");
lost.setAnoDeLancamento(2000);
lost.exibeFime();
lost.setTemporadas(10);
lost.setEpisodiosPorTemporada(10);
lost.setMinutosPorEpsodios(50);
System.out.println("Duração para maratonar:" + lost.getDuracaoEmMinutos());
Filme outroFilme = new Filme();
outroFilme.setNome("Avata");
outroFilme.setAnoDeLancamento(2020);
outroFilme.setDuracaoEmMinutos(90);
outroFilme.setIncluidoNoPlano(true);
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);
Epsodio epsodio = new Epsodio();
epsodio.setNumero(1);
epsodio.setSerie(lost);
epsodio.setTotalVisualizacoes(100);
filtro.filtra(epsodio);
Filme filmeRoy = new Filme();
filmeRoy.setNome("O poderso Chefão");
filmeRoy.setAnoDeLancamento(1980);
filmeRoy.setDuracaoEmMinutos(90);
filmeRoy.setIncluidoNoPlano(true);
ArrayList<Filme> listFilmes = new ArrayList<>();
listFilmes.add(meuFilme);
listFilmes.add(outroFilme);
listFilmes.add(filmeRoy);
System.out.println("Tamanho da lista: " +listFilmes.size());
System.out.println("Primeiro Filme: " + listFilmes.get(0));
System.out.println(listFilmes);
//Varrendo a lista de Filme e Listando
System.out.println("**********Percorrendo a lists de Filmes**********");
for (Filme filme : listFilmes) {
System.out.println(filme);
}
}
}
//Class Filme
package br.com.alura.screenmatch.modelos;
import br.com.alura.screenmatch.calculos.Classificavel;
public class Filme extends Titulo implements Classificavel {
private String diretor;
public String getDiretor() {
return diretor;
}
public void setDiretor(String diretor) {
this.diretor = diretor;
}
@Override
public int getclassificao() {
return (int) pegaMedia();
}
@Override
public String toString() {
return "Filme" + this.getNome() + " (" +this.getAnoDeLancamento() + ")";
}
}