import br.com.alura.screenmatch.calculos.CalculadoraDeTempo;
import br.com.alura.screenmatch.modelos.Filme;
import br.com.alura.screenmatch.modelos.Serie;
public class Principal {
public static void main(String[] args) {
Filme meuFilme = new Filme();
meuFilme.setNome("Vigadores: Guerra Infinita");
meuFilme.setAnoDeLancamento(2018);
meuFilme.setDuracaoEmMinutos(149);
meuFilme.setIncluidoNoPlano(true);
System.out.println("A 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.calculoMedia());
//meuFilme.somaDasAvaliacoes = 10;
//meuFilme.totalDeAvaliacoes = 1;
//System.out.println(meuFilme.calculoMedia());
Serie lost = new Serie();
lost.setNome("Lost");
lost.setAnoDeLancamento(2000);
lost.exibeFichaTecnica();
lost.setTemporadas(10);
lost.setEpisodiosPorTemporada(10);
lost.setMinutosPorEpisodios(50);
System.out.println("Duração em minutos de todos os episodios da serie: " + lost.getDuracaoEmMinutos());
Filme outroFilme = new Filme();
outroFilme.setNome("Avatar");
outroFilme.setAnoDeLancamento(2009);
outroFilme.setDuracaoEmMinutos(162);
outroFilme.setIncluidoNoPlano(true);
System.out.println("A duração do filme é: " + outroFilme.getDuracaoEmMinutos());
CalculadoraDeTempo calculadora = new CalculadoraDeTempo();
calculadora.inclui(meuFilme);
calculadora.inclui(outroFilme);
calculadora.inclui(lost);
System.out.println(calculadora.getTempoTotal());
}
}
package br.com.alura.screenmatch.modelos;
public class Titulo {
private String nome;
private int anoDeLancamento;
private boolean incluidoNoPlano;
private double somaDasAvalicoes;
private int totalDeAvaliacoes;
private int duracaoEmMinutos;
public String getNome() {
return nome;
}
public int getAnoDeLancamento() {
return anoDeLancamento;
}
public boolean isIncluidoNoPlano() {
return incluidoNoPlano;
}
public int getDuracaoEmMinutos() {
return duracaoEmMinutos;
}
public int getTotalDeAvaliacoes(){
return totalDeAvaliacoes;
}
public void setNome(String nome) {
this.nome = nome;
}
public void setIncluidoNoPlano(boolean incluidoNoPlano) {
this.incluidoNoPlano = incluidoNoPlano;
}
public void setDuracaoEmMinutos(int duracaoEmMinutos) {
this.duracaoEmMinutos = duracaoEmMinutos;
}
public void setAnoDeLancamento(int anoDeLancamento) {
this.anoDeLancamento = anoDeLancamento;
}
public void exibeFichaTecnica (){
System.out.println("O filme é: " + nome);
System.out.println("O ano de lançamento é: " + anoDeLancamento);
System.out.println("Você esta no plano " + incluidoNoPlano);
}
public void avalia (double nota){
somaDasAvalicoes += nota;
totalDeAvaliacoes++;
}
public double calculoMedia (){
return somaDasAvalicoes / totalDeAvaliacoes;
}
}
package br.com.alura.screenmatch.modelos;
public class Filme extends Titulo {
private String Diretor;
public void setDiretor(String diretor) {
Diretor = diretor;
}
public String getDiretor() {
return Diretor;
}
}
package br.com.alura.screenmatch.modelos;
public class Serie extends Titulo {
private int temporadas;
private boolean ativa;
private int episodiosPorTemporada;
private int minutosPorEpisodios;
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 getMinutosPorEpisodios() {
return minutosPorEpisodios;
}
public void setMinutosPorEpisodios(int minutosPorEpisodios) {
this.minutosPorEpisodios = minutosPorEpisodios;
}
@Override
public int getDuracaoEmMinutos() {
return temporadas * episodiosPorTemporada * minutosPorEpisodios;
}
}
