import br.com.alura.screanmatch.modelos.Serie;
public class Principal {
public static void main(String[] args) {
Filme meuFilme = new Filme();
meuFilme.setNome("Filme: Ainda estou aqui");
meuFilme.setAnoDeLancamento( 2024);
meuFilme.setDuracaoEmMinutos( 180);
System.out.println("Duração do meu filme: " + meuFilme.getDuracaoEmMinutos());
meuFilme.exibirFichaTecnica();
meuFilme.avalia(8);
meuFilme.avalia(9);
meuFilme.avalia(10);
System.out.println("Total de avaliações: " + meuFilme.getTotalDeAvaliacoes());
System.out.println("Media das avaliações: " + meuFilme.pegaMedia());
Serie aRodaDoTempo = new Serie();
aRodaDoTempo.setNome("Série: A Roda do Tempo");
aRodaDoTempo.setAnoDeLancamento(2023);
aRodaDoTempo.exibirFichaTecnica();
aRodaDoTempo.setTemporadas(2);
aRodaDoTempo.setEpisodiosPorTemporada(10);
aRodaDoTempo.setMinutosPorEpisodios(50);
System.out.println("Duração para maratonar A roda do tempo " + aRodaDoTempo.getDuracaoEmMinutos());
CalculadoraDetempo calculadora = new CalculadoraDetempo();
calculadora.inclui(meuFilme);
calculadora.inclui(aRodaDoTempo);
System.out.println(calculadora.getTempototal());
}
}
package br.com.alura.screanmatch.modelos;
public class Titulo {
private String nome;
private int anoDeLancamento;
private boolean incluidoNoPlano;
private double somaDasavaliacoes;
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 void setNome(String nome) {
this.nome = nome;
}
public void setAnoDeLancamento(int anoDeLancamento) {
this.anoDeLancamento = anoDeLancamento;
}
public void setIncluidoNoPlano(boolean incluidoNoPlano) {
this.incluidoNoPlano = incluidoNoPlano;
}
public void setDuracaoEmMinutos(int duracaoEmMinutos) {
this.duracaoEmMinutos = duracaoEmMinutos;
}
public void setSomaDasavaliacoes(double somaDasavaliacoes) {
this.somaDasavaliacoes = somaDasavaliacoes;
}
public int getTotalDeAvaliacoes() {
return totalDeAvaliacoes;
}
public void exibirFichaTecnica() {
System.out.println("Nome: " + nome);
System.out.println("Ano de lançamento: " + anoDeLancamento);
}
public void avalia(double nota) {
somaDasavaliacoes += nota;
totalDeAvaliacoes++;
}
public double pegaMedia() {
return somaDasavaliacoes / totalDeAvaliacoes;
}
}
package br.com.alura.screanmatch.modelos;
public class Filme extends Titulo{
private String diretor;
public String getDiretor() {
return diretor;
}
public void setDiretor(String diretor) {
this.diretor = diretor;
}
}
public class Serie extends Titulo{
private int temporadas;
private boolean ativa;
private int episodiosPorTemporada;
private int minutosPorEpisodios;
public int getTemporadas() {
return temporadas;
}
public boolean isAtiva() {
return ativa;
}
public int getEpisodiosPorTemporada() {
return episodiosPorTemporada;
}
public int getMinutosPorEpisodios() {
return minutosPorEpisodios;
}
public void setTemporadas(int temporadas) {
this.temporadas = temporadas;
}
public void setAtiva(boolean ativa) {
this.ativa = ativa;
}
public void setEpisodiosPorTemporada(int episodiosPorTemporada) {
this.episodiosPorTemporada = episodiosPorTemporada;
}
public void setMinutosPorEpisodios(int minutosPorEpisodios) {
this.minutosPorEpisodios = minutosPorEpisodios;
}
@Override
public int getDuracaoEmMinutos() {
return temporadas * episodiosPorTemporada * minutosPorEpisodios;
}
}
package br.alura.screanmeatch.calculo;
import br.com.alura.screanmatch.modelos.Titulo;
public class CalculadoraDetempo {
private int tempototal= 0;
public int getTempototal() {
return this.tempototal;
}
public void inclui(Titulo titulo){
this.tempototal += titulo.getDuracaoEmMinutos();
}
}