package br.com.alura.screenmacth.modelos;
import br.com.alura.screenmacth.calculos.CalculadoraDeTempo;
public class Main {
public static void main(String[] args) {
Filme favorito = new Filme();
favorito.setNome("The Martrix");
favorito.setAnoDeLancamento(1999);
favorito.setDuracaoEmMinutos(135);
favorito.setIncluidoNoPlano(true);
Filme outro = new Filme();
outro.setNome("John Wick");
outro.setAnoDeLancamento(2014);
outro.setDuracaoEmMinutos(100);
outro.setIncluidoNoPlano(true);
Serie serie = new Serie();
serie.setNome("La Casa de Papel");
serie.setAnoDeLancamento(2017);
serie.setIncluidoNoPlano(true);
serie.setAtiva(true);
serie.setTemporadas(5);
serie.setEpisodiosPorTemporada(10);
serie.setMinutosPorEpisodios(45);
CalculadoraDeTempo calculadora = new CalculadoraDeTempo();
calculadora.inclui(favorito);
calculadora.inclui(outro);
calculadora.inclui(serie);
System.out.println("Tempo total: " +calculadora.getTempoTotal());
}
}
package br.com.alura.screenmacth.modelos;
public class Titulo {
private String nome;
private int anoDeLancamento;
private int duracaoEmMinutos;
private boolean incluidoNoPlano;
private double somaDasAvaliacoes;
private int totalDeAvaliacoes;
//metodos especiais
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getAnoDeLancamento() {
return anoDeLancamento;
}
public void setAnoDeLancamento(int anoDeLancamento) {
this.anoDeLancamento = anoDeLancamento;
}
public int getDuracaoEmMinutos() {
return duracaoEmMinutos;
}
public void setDuracaoEmMinutos(int duracaoEmMinutos) {
this.duracaoEmMinutos = duracaoEmMinutos;
}
public boolean isIncluidoNoPlano() {
return incluidoNoPlano;
}
public void setIncluidoNoPlano(boolean incluidoNoPlano) {
this.incluidoNoPlano = incluidoNoPlano;
}
public int getTotalDeAvaliacoes() {
return totalDeAvaliacoes;
}
//metodos
void exibeFichaTecnica(){
System.out.println("Nome do filme: " + nome);
System.out.println("Data de lançamento: " + anoDeLancamento);
System.out.println("Duração do filme: " + duracaoEmMinutos + "m.");
System.out.println("incluído no plano: " + incluidoNoPlano);
}
void avalia(double nota){
somaDasAvaliacoes += nota;
totalDeAvaliacoes++;
}
double pegaMedia(){
return somaDasAvaliacoes / totalDeAvaliacoes;
}
}
package br.com.alura.screenmacth.modelos;
public class Filme extends Titulo{
private String diretor;
public String getDiretor() {
return diretor;
}
public void setDiretor(String diretor) {
this.diretor = diretor;
}
}
package br.com.alura.screenmacth.modelos;
public class Serie extends Titulo{
private int temporadas;
private int minutosPorEpisodios;
private int episodiosPorTemporada;
private boolean ativa;
public int getTemporadas() {
return temporadas;
}
public void setTemporadas(int temporadas) {
this.temporadas = temporadas;
}
public int getMinutosPorEpisodios() {
return minutosPorEpisodios;
}
public void setMinutosPorEpisodios(int minutosPorEpisodios) {
this.minutosPorEpisodios = minutosPorEpisodios;
}
public int getEpisodiosPorTemporada() {
return episodiosPorTemporada;
}
public void setEpisodiosPorTemporada(int episodiosPorTemporada) {
this.episodiosPorTemporada = episodiosPorTemporada;
}
public boolean isAtiva() {
return ativa;
}
public void setAtiva(boolean ativa) {
this.ativa = ativa;
}
@Override
public int getDuracaoEmMinutos() {
return temporadas * episodiosPorTemporada * minutosPorEpisodios;
}
}