import br.com.alura.screenmatch.calculos.CalculadoraDeTempo;
import br.com.alura.screenmatch.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("O poderso chefão",1970); //Criação com o construtor com o construtor
meuFilme.setDuracaoEmMinutos(180);
System.out.println("Duração do filme: " + meuFilme.getDuracaoEmMinutos());
meuFilme.exibeFichaTecnica();
meuFilme.avalia(8);
meuFilme.avalia(5);
meuFilme.avalia(10);
System.out.println("Total de avaliações: " + meuFilme.getTotalDeAvaliacoes());
System.out.println(meuFilme.pegaMedia());
//meuFilme.somaDasAvaliacoes = 10;
//meuFilme.totalDeAvaliacoes = 1;
//System.out.println(meuFilme.pegaMedia());
Serie lost = new Serie("Lost", 2000);//Criação com o construtor
lost.exibeFichaTecnica();
lost.setTemporadas(10);
lost.setEpisodiosPorTemporada(10);
lost.setMinutosPorEpisodio(50);
System.out.println("Duração para maratonar Lost: " + lost.getDuracaoEmMinutos());
Filme outroFilme = new Filme("Avatar", 2023);//Criação com o construtor com o construtor
outroFilme.setDuracaoEmMinutos(200);
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 filmeDopaulo = new Filme("Dogville",2003);//Criação com o construtor
filmeDopaulo.setDuracaoEmMinutos(200);
filmeDopaulo.avalia(10);
ArrayList<Filme> listaDeFilmes = new ArrayList<>();
listaDeFilmes.add(filmeDopaulo);
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);
}
}
Construtor na classe mãe "Título".
public Titulo(String nome, int anoDeLancamento) {
this.nome = nome;
this.anoDeLancamento = anoDeLancamento;
}
\\Parte do código omitida.
Construtor na classe filha "Filme".
public class Filme extends Titulo implements Classificavel {
private String diretor;
//Construtor
public Filme(String nome, int anoDeLancamento) {
super(nome, anoDeLancamento);
}
\\Parte do código omitida.
Construtor na classe filha "Serie".
public class Serie extends Titulo {
private int temporadas;
private boolean ativa;
private int episodiosPorTemporada;
private int minutosPorEpisodio;
//Construtor
public Serie(String nome, int anoDeLancamento) {
super(nome, anoDeLancamento);
}
\\Parte do código omitida.
Saída permanece a mesma.
