package br.com.alura.screenmatch.modelos;
public class Titulo {
private String nome;
private int anoDeLancamento;
private boolean incluindoNoPlano;
private double somaDasAvaliacoes;
private int totalAvaliacoes;
private int duracaoEmMinutos;
public Titulo(String nome, int anoDeLancamento) {
this.nome = nome;
this.anoDeLancamento = anoDeLancamento;
}
public String getNome() {
return nome;
}
public int getAnoDeLancamento() {
return anoDeLancamento;
}
public boolean isIncluindoNoPlano() {
return incluindoNoPlano;
}
public int getDuracaoEmMinutos() {
return duracaoEmMinutos;
}
public int getTotalAvaliacoes(){
return totalAvaliacoes;
}
public void setNome(String nome) {
this.nome = nome;
}
public void setIncluindoNoPlano(boolean incluindoNoPlano) {
this.incluindoNoPlano = incluindoNoPlano;
}
public void setAnoDeLancamento(int anoDeLancamento) {
this.anoDeLancamento = anoDeLancamento;
}
public void setDuracaoEmMinutos(int duracaoEmMinutos) {
this.duracaoEmMinutos = duracaoEmMinutos;
}
public void exibeFichaTecnica(){
System.out.println("Nome do filme: " + nome);
System.out.println("Ano de lançamento: " + anoDeLancamento);
}
public void avalia(double nota){
somaDasAvaliacoes += nota;
totalAvaliacoes++;
}
public double obterMedia(){
return somaDasAvaliacoes / totalAvaliacoes;
}
}
package br.com.alura.screenmatch.modelos;
public class Serie extends Titulo {
private int temporadas;
private boolean ativa;
private int episodioPorTemporada;
private int minutosPorEpisodio;
public Serie(String nome, int anoDeLancamento) {
super(nome, anoDeLancamento);
}
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 getEpisodioPorTemporada() {
return episodioPorTemporada;
}
public void setEpisodioPorTemporada(int episodioPorTemporada) {
this.episodioPorTemporada = episodioPorTemporada;
}
public int getMinutosPorEpisodio() {
return minutosPorEpisodio;
}
public void setMinutosPorEpisodio(int minutosPorEpisodio) {
this.minutosPorEpisodio = minutosPorEpisodio;
}
@Override
public int getDuracaoEmMinutos() {
return temporadas * episodioPorTemporada * minutosPorEpisodio;
}
}
package br.com.alura.screenmatch.modelos;
import br.com.alura.screenmatch.calculos.Classificavel;
public class Filme extends Titulo implements Classificavel {
private String diretor;
public Filme(String nome, int anoDeLancamento) {
super(nome, anoDeLancamento);
}
public String getDiretor() {
return diretor;
}
public void setDiretor(String diretor) {
this.diretor = diretor;
}
@Override
public int getClassificacao() {
return (int) obterMedia() / 2;
}
@Override
public String toString() {
return "Filme: " + this.getNome() + " (" + this.getAnoDeLancamento() + ") ";
}
}