2
respostas

Herança e Polimorfismo- Aula

//Filme

package br.com.alura.screenmatch.modelos;

public class Filme extends Titulo{
private String diretor;

public String getDiretor() {
    return diretor;
}

public void setDiretor(String diretor) {
    this.diretor = diretor;
}
}

//Serie

package br.com.alura.screenmatch.modelos;

public class Serie extends Titulo{
    private int temporadas;
    private boolean ativa;
    private int episodiosPorTemporada;
    private int minutosPorEpsodios;

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 getMinutosPorEpsodios() {
    return minutosPorEpsodios;
}

public void setMinutosPorEpsodios(int minutosPorEpsodios) {
    this.minutosPorEpsodios = minutosPorEpsodios;
}


public boolean isIncluidoNoPlano() {
    return super.isIncluidoNoPlano();
}

@Override
public int getDuracaoEmMinutos(){
        return temporadas * episodiosPorTemporada*minutosPorEpsodios;
}
}

//Titulo

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 String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

public int getAnoDeLancamento() {
    return anoDeLancamento;
}

public void setAnoDeLancamento(int anoDeLancamento) {
    this.anoDeLancamento = anoDeLancamento;
}

public int getDuracaoEmMinutos() {
    return duracaoEmMinutos;
}

public void setDuracaoEmMinutos(int duracaoEmMinutos) {
    this.duracaoEmMinutos = duracaoEmMinutos;
}

public boolean isIncluidoNoPlano() {
    return incluidoNoPlano;
}

public void setIncluidoNoPlano(boolean incluidoNoPlano) {
    this.incluidoNoPlano = incluidoNoPlano;
}

public int getTotalDeAvaliacao() {
    return totalDeAvaliacao;
}

public double getSomaDasAvaliacoes() {
    return somaDasAvaliacoes;
}

public void exibeFime(){

    System.out.println(nome);
    System.out.println(anoDeLancamento);
    System.out.println(somaDasAvaliacoes);
    System.out.println(duracaoEmMinutos);
    System.out.println(incluidoNoPlano);
    System.out.println(totalDeAvaliacao);

}

public void avalia( double nota){

    somaDasAvaliacoes+= nota;
    totalDeAvaliacao ++;

}

public double pegaMedia(){
    return somaDasAvaliacoes/totalDeAvaliacao;
}
}

//Calculadora

package br.com.alura.screenmatch.calculos;

import br.com.alura.screenmatch.modelos.Filme;
import br.com.alura.screenmatch.modelos.Serie;
import br.com.alura.screenmatch.modelos.Titulo;

public class CalculadoraDeTempo {
    private int tempoTotal;

public int getTempoTotal() {
    return tempoTotal;
}

public void setTempoTotal(int tempoTotal) {
    this.tempoTotal = tempoTotal;
}

public void inclui(Titulo t){
    this.tempoTotal += t.getDuracaoEmMinutos();

}
}
2 respostas

//Por conta de limitações de tamanho no campo memu, foi posto abaixo o método main de chamada e execução das classes envolvidas //Principal-> Main

import br.com.alura.screenmatch.calculos.CalculadoraDeTempo;
import br.com.alura.screenmatch.modelos.Filme;
import br.com.alura.screenmatch.modelos.Serie;

public class Principal {
    public static void main(String[] args) {
        Filme meuFilme = new Filme();
        meuFilme.setNome("O poderso Chefão");
        meuFilme.setAnoDeLancamento(1980);
        meuFilme.setDuracaoEmMinutos(90);
        meuFilme.setIncluidoNoPlano(true);

    /*Consumindo método Exibe br.com.alura.screenmatch.modelos.Filme*/
    meuFilme.exibeFime();



    /*Carga das Avaliações*/
    meuFilme.avalia(8);
    meuFilme.avalia(10);
    meuFilme.avalia(9);
    meuFilme.avalia(5);
    meuFilme.avalia(5);
    meuFilme.avalia(10);

    System.out.println("Soma das Avaliações -> " + meuFilme.getSomaDasAvaliacoes());
    System.out.println("Total de Avaliações -> " + meuFilme.getTotalDeAvaliacao());
    System.out.println("Média das Avaliações -> " + meuFilme.pegaMedia());

    Serie lost = new Serie();
    lost.setNome("Lost");
    lost.setAnoDeLancamento(2000);
    lost.exibeFime();
    lost.setTemporadas(10);
    lost.setEpisodiosPorTemporada(10);
    lost.setMinutosPorEpsodios(50);
    System.out.println("Duração para maratonar:" + lost.getDuracaoEmMinutos());


    Filme outroFilme = new Filme();
    outroFilme.setNome("Avata");
    outroFilme.setAnoDeLancamento(2020);
    outroFilme.setDuracaoEmMinutos(90);
    outroFilme.setIncluidoNoPlano(true);


    CalculadoraDeTempo calculadora = new CalculadoraDeTempo();
    calculadora.inclui(meuFilme);
    calculadora.inclui(outroFilme);
    calculadora.inclui(lost);
    System.out.println(calculadora.getTempoTotal());


}
}

Oi, Rogério! Tudo bem?

Excelente código, parabéns pela elaboração! A prática é essencial para consolidarmos o nosso aprendizado e nesse processo caso haja alguma dúvida pode contar aqui com a gente no fórum, estou à disposição e ficarei super feliz em poder ajudar!

Um forte abraço e bons estudos!