package br.alura.screenmatch.modelos;
public class Titulo {
private String nome;
private int anoDeLancamento;
private int duracaoEmMinutos;
private boolean incluidoPlano;
private double somaDasAvaliacoes;
private double somaDasAvalicoes;
private int totalDasAvalicoes;
public void ExibeFichaTecnica() {
System.out.println("Nome: " + nome);
System.out.println("Ano de lançamento: " +anoDeLancamento);
System.out.println("Duracao em minutos: " +duracaoEmMinutos);
System.out.println("Incluido no plano: " +incluidoNoPlano);
}
public void ExibeFichaTecnica(){
System.out.println("Nome do filme: " +nome);
System.out.println("Ano de lancamento: " +anoDeLancamento);
System.out.println("Duracao em minutos: " +duracaoEmMinutos);
System.out.println("Incluido no plano: " +incluidoNoPlano);
}
public void avalia(double nota) {
somaDasAvaliacoes += nota;
totalDeAvaliacoes++;
}
public double pegaMedia() {
return somaDasAvaliacoes / totalDeAvaliacoes;
}
public String getNome() {
return this.nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getAnoDeLancamento() {
return this.anoDeLancamento;
}
public void setAnoDeLancamento(int anoDeLancamento) {
this.anoDeLancamento = anoDeLancamento;
}
public boolean getIncluidoNoPlano() {
return this.incluidoNoPlano;
}
public void setIncluidoNoPlano(boolean incluidoNoPlano) {
this.incluidoNoPlano = incluidoNoPlano;
}
public int getDuracaoEmMinutos() {
return this.duracaoEmMinutos;
}
public void setDuracaoEmMinutos(int duracaoEmMinutos) {
this.duracaoEmMinutos = duracaoEmMinutos;
}
public int getTotalDeAvaliacoes() {
return this.totalDeAvaliacoes;
}
}
package br.com.alura.screenmatch.modelos;
public class Filme extends Titulo {
private String diretor;
public String getDiretor() {
return this.diretor;
}
public void setDiretor(String diretor) {
this.diretor = diretor;
}
package br.com.alura.screenmatch.modelos;
public class Serie extends Titulo {
private int temporadas;
private boolean ativa;
private int episodiosPorTemporada;
private int minutosPorEpisodio;
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 getMinutosPorEpisodio() {
return minutosPorEpisodio;
}
public void setMinutosPorEpisodio(int minutosPorEpisodio) {
this.minutosPorEpisodio = minutosPorEpisodio;
}
}
@Override
public int getDuracaoEmMinutos() {
return temporadas * episodiosPorTemporada * minutosPorEpisodio;
}
package br.com.alura.screenmatch.calculos;
public class CalculadoraDeTempo {
private int tempoTotal;
public void inclui(Titulo titulo) {
tempoTotal += titulo.getDuracaoEmMinutos();
}
public int getTempoTotal() {
return tempoTotal;
}
}