Montei as classes dessa forma, apliquei a regra de negócio que o cálculo do tempo das séries é feito pelo número de temporadas * a média de episódios por temporada * 60(média de minutos por EP) = Minutos Totais
public class Tipo {
private String nome;
private Integer anoLancamento;
private String sinopse;
private Boolean incluidoNoPlano;
private Double avaliacao;
private Integer duracaoEmMinutos;
//tirei os getters e setters pelo limite de caracteres
public Tipo(String nome, Integer anoLancamento, String sinopse, Boolean incluidoNoPlano, Double avaliacao, Integer duracaoEmMinutos) {
this.nome = nome;
this.anoLancamento = anoLancamento;
this.sinopse = sinopse;
this.incluidoNoPlano = incluidoNoPlano;
this.avaliacao = avaliacao;
this.duracaoEmMinutos = duracaoEmMinutos;
}
public void exibirFichaTecnica(){
System.out.println("Nome: " + getNome());
System.out.println("Lançado em: " + getAnoLancamento());
System.out.println(getSinopse());
if(getIncluidoNoPlano().equals(true)){
System.out.println("Incluído no plano");
}
else{
System.out.println("Não está incluído no plano");
}
System.out.println("Nota no IMDB: " + getAvaliacao() + "/10");
System.out.println("Tempo total de duração: " + getDuracaoEmMinutos() + " minutos");
}
}
public class Filme extends Tipo{
private String diretor;
public String getDiretor() {
return diretor;
}
public void setDiretor(String diretor) {
this.diretor = diretor;
}
public Filme(String nome, Integer anoLancamento, String sinopse, Boolean incluidoNoPlano, Double avaliacao, String diretor, Integer duracaoEmMinutos) {
super(nome, anoLancamento, sinopse, incluidoNoPlano, avaliacao, duracaoEmMinutos);
this.diretor = diretor;
}
@Override
public void exibirFichaTecnica() {
super.exibirFichaTecnica();
System.out.println("Diretor: " + getDiretor());
}
}
public class Serie extends Tipo {
private Integer temporadas;
private Integer mediaEpisodiosPorTemporada;
public Integer getTemporadas() {
return temporadas;
}
public void setTemporadas(Integer temporadas) {
this.temporadas = temporadas;
}
public Integer getMediaEpisodiosPorTemporada() {
return mediaEpisodiosPorTemporada;
}
public void setMediaEpisodiosPorTemporada(Integer mediaEpisodiosPorTemporada) {
this.mediaEpisodiosPorTemporada = mediaEpisodiosPorTemporada;
}
public Serie(String nome, Integer anoLancamento, String sinopse, Boolean incluidoNoPlano, Double avaliacao,Integer duracaoEmMinutos, Integer temporadas, Integer mediaEpisodiosPorTemporada) {
super(nome, anoLancamento, sinopse, incluidoNoPlano, avaliacao, 0);
this.temporadas = temporadas;
this.mediaEpisodiosPorTemporada = mediaEpisodiosPorTemporada;
calcularTempoTotal();
}
@Override
public void exibirFichaTecnica() {
super.exibirFichaTecnica();
System.out.println("Temporadas: " + temporadas);
System.out.println("Média de episódios por temporada: " + mediaEpisodiosPorTemporada);
}
public void calcularTempoTotal() {
Integer tempoDeSerie = mediaEpisodiosPorTemporada * temporadas * 60;
tempoDeSerie += getDuracaoEmMinutos();
super.setDuracaoEmMinutos(tempoDeSerie);
System.out.println("Tempo total: " + tempoDeSerie + " minutos");
}
}
package screenmatch.modelos;
public class CalculadoraTempo {
private Integer tempoTotal = 0;
public Integer getTempoTotal() {
return tempoTotal;
}
public void setTempoTotal(Integer tempoTotal) {
this.tempoTotal = tempoTotal;
}
public void calcularTempoTotal(Tipo tipo) {
this.tempoTotal += tipo.getDuracaoEmMinutos();
System.out.println("Tempo total: " + this.tempoTotal + " minutos");
}
}
import screenmatch.modelos.CalculadoraTempo;
import screenmatch.modelos.Filme;
import screenmatch.modelos.Serie;
public class Principal {
public static void main(String[] args) {
Filme filme1 = new Filme("Interestelar", 2015, "Um grupo de exploradores viaja através de um buraco de minhoca em busca de um novo lar para a humanidade.", true,8.7, "Christopher Nolan",169);
Filme filme2 = new Filme("Tropa de Elite", 2007, "Um capitão do BOPE tenta combater o tráfico de drogas no Rio de Janeiro.", true, 8.1, "José Padilha",115 );
Serie serie1 = new Serie("Breaking Bad", 2008, "Um professor de química se torna um fabricante de metanfetamina após ser diagnosticado com câncer.", true, 9.5, 0, 5, 13);
filme1.exibirFichaTecnica();
filme2.exibirFichaTecnica();
serie1.exibirFichaTecnica();
}
}