package br.com.alura.screenmatch.modelos;
import br.com.alura.screenmatch.calculos.CalculadoraDeTempo;
import br.com.alura.screenmatch.modelos.Filme;
public class Principal {
private static Filme Serie;
public static void main(String[] args) {
Filme meuFilme = new Filme();
meuFilme.setNome("Jonh Wick 4");
meuFilme.setAnoDeLancamento(2023);
meuFilme.setDuracaoEmMinutos(180);
meuFilme.setIncluidoNoPlano(true);
meuFilme.exibeFichaTecnica();
meuFilme.avalia(8);
meuFilme.avalia(5);
meuFilme.avalia(10);
//System.out.println("Nota do Filme: " + meuFilme.somaDasAvaliacoes);
System.out.println("Duração do Filme:" + meuFilme.getDuracaoEmMinutos());
System.out.println("Quantidade de Avalições: " + meuFilme.getTotalDeAvaliacao());
System.out.printf("Media das Avaliações: %.1f\n ", meuFilme.pegaMedia());
System.out.println(" ");
Serie lost = new Serie();
lost.setNome("Lost");
lost.setAnoDeLancamento(2000);
lost.exibeFichaTecnica();
lost.setTemporadas(10);
lost.setEpisodiosPorTemporada(10);
lost.setMinutosPorEpisodio(50);
System.out.println("Tempo para Maratonar Lost:" +lost.getDuracaoEmMinutos() + " Minutos");
Filme outroFilme = new Filme();
outroFilme .setNome("Jonh Wick 3");
outroFilme .setAnoDeLancamento(2021);
outroFilme .setDuracaoEmMinutos(120);
CalculadoraDeTempo calculadora = new CalculadoraDeTempo();
calculadora.inclui(meuFilme);
calculadora.inclui(outroFilme);
calculadora.inclui(lost);
System.out.println(calculadora.getTempoTotal());
}
}
package br.com.alura.screenmatch.calculos;
import br.com.alura.screenmatch.modelos.Titulo;
public class CalculadoraDeTempo {
private int tempoTotal;
public int getTempoTotal() {
return tempoTotal;
}
public void inclui(Titulo titulo){
System.out.println("Adicionando duração em minutos de " + titulo);
this.tempoTotal += titulo.getDuracaoEmMinutos();
}
}
package br.com.alura.screenmatch.modelos;
public class Titulo {
private String nome;
private int anoDeLancamento;
private boolean incluidoNoPlano;
private double somaDasAvaliacoes;
private int totalDeAvaliacao;
private int duracaoEmMinutos;
public int getTotalDeAvaliacao() {
return totalDeAvaliacao;
}
public String getNome() {
return nome;
}
public int getAnoDeLancamento() {
return anoDeLancamento;
}
public boolean IncluidoNoPlano() {
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 exibeFichaTecnica(){
System.out.println("Nome do Filme: " + nome);
System.out.println("Ano de Lancamento: " + anoDeLancamento);
System.out.println("Filme incluído no seu Plano!");
}
public void avalia(double nota){
somaDasAvaliacoes += nota;
totalDeAvaliacao++;
}
public double pegaMedia(){
return somaDasAvaliacoes / totalDeAvaliacao;
//esse return, vai retornar o valor dessa operação.
}
}
package br.com.alura.screenmatch.modelos;
public class Serie extends Titulo {
private int temporadas;
private int episodiosPorTemporada;
private boolean ativa;
private int minutosPorEpisodio;
public int getTemporadas() {
return temporadas;
}
public void setTemporadas(int temporadas) {
this.temporadas = temporadas;
}
public int getEpisodiosPorTemporada() {
return episodiosPorTemporada;
}
public void setEpisodiosPorTemporada(int episodiosPorTemporada) {
this.episodiosPorTemporada = episodiosPorTemporada;
}
public boolean isAtiva() {
return ativa;
}
public void setAtiva(boolean ativa) {
this.ativa = ativa;
}
public int getMinutosPorEpisodio() {
return minutosPorEpisodio;
}
public void setMinutosPorEpisodio(int minutosPorEpisodio) {
this.minutosPorEpisodio = minutosPorEpisodio;
}
@Override
public int getDuracaoEmMinutos() {
return temporadas * episodiosPorTemporada * minutosPorEpisodio;
}
}