Black November

ATÉ 50% OFF

TÁ ACABANDO!

0 dias

0 horas

0 min

0 seg

Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Programando em Java ☺

Screenmatch

package br.com.alura.screenmatch.modelos;

public class Titulo {
    private String nome;
    private int anoDeLancamento;
    private double totalDeAvaliacoes;
    private boolean incluidoNoPlano;
    private double someDasAvaliacoes;
    private int duracaoEmMinutos;

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

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

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

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

    public String getNome() {
        return nome;
    }

    public int getAnoDeLancamento() {
        return anoDeLancamento;
    }

    public boolean isIncluidoNoPlano() {
        return incluidoNoPlano;
    }

    public int getDuracaoEmMinutos() {
        return duracaoEmMinutos;
    }

    public void exibeFichaTecnica (){
        String ficha = """
                
                Nome: %s
                Ano de Lançamento: %d
                Duração em minutos: %d
                Incluido no plano: %b""".formatted(getNome(), getAnoDeLancamento(), getDuracaoEmMinutos(), incluidoNoPlano);
        System.out.println(ficha);
    }
    public void avalia (double nota){
        someDasAvaliacoes +=nota;
        totalDeAvaliacoes++;
    }
    public double pegaMedia(){
        return someDasAvaliacoes / totalDeAvaliacoes;
    }

}
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;
    }
}
package br.com.alura.screenmatch.modelos;

public class Serie extends Titulo {
    int temporadas;
    boolean ativa;
    int episodeosPorTemporadas;
    int minutosPorEpisodeo;

    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 getEpisodeosPorTemporadas() {
        return episodeosPorTemporadas;
    }

    public void setEpisodeosPorTemporadas(int episodeosPorTemporadas) {
        this.episodeosPorTemporadas = episodeosPorTemporadas;
    }

    public int getMinutosPorEpisodeo() {
        return minutosPorEpisodeo;
    }

    public void setMinutosPorEpisodeo(int minutosPorEpisodeo) {
        this.minutosPorEpisodeo = minutosPorEpisodeo;
    }

    @Override
    public int getDuracaoEmMinutos(){
        return temporadas * minutosPorEpisodeo * episodeosPorTemporadas;
    }
}
package br.com.alura.screenmatch.calculos;

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

public class Calculadora extends Titulo {
    int tempoTotal;

    public void inclui(Titulo titulo){
        tempoTotal += titulo.getDuracaoEmMinutos();
    }

    public int getTempoTotal() {
        return tempoTotal;
    }
}
import br.com.alura.screenmatch.calculos.Calculadora;
import br.com.alura.screenmatch.modelos.Filme;
import br.com.alura.screenmatch.modelos.Serie;

public class Principal {
    public static void main(String[] args) {
        Filme filme1 = new Filme();
        filme1.setNome("Shrek 2");
        filme1.setAnoDeLancamento(2004);
        filme1.setDuracaoEmMinutos(90);
        filme1.setIncluidoNoPlano(true);
        filme1.exibeFichaTecnica();
        filme1.avalia(8);
        filme1.avalia(10);
        filme1.avalia(7.5);
        filme1.avalia(9);
        System.out.println(String.format("Nota: %.2f", filme1.pegaMedia()));

        Serie serie = new Serie();
        serie.setNome("The Good Place");
        serie.setTemporadas(4);
        serie.setEpisodeosPorTemporadas(15);
        serie.setMinutosPorEpisodeo(22);
        serie.setAnoDeLancamento(2016);
        serie.exibeFichaTecnica();

        Calculadora calculadora = new Calculadora();
        calculadora.inclui(filme1);
        calculadora.inclui(serie);
        System.out.println("\nTempo de maratona: " + calculadora.getTempoTotal());
    }
}

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta
solução!

Oi, Nicollas! Como vai?

Com o que você descreveu, chamou atenção como você organizou bem as classes Titulo, Filme e Serie, usando herança para reaproveitar comportamentos. Isso deixa claro como você entendeu a relação entre os objetos e o uso do polimorfismo na sobrescrita de métodos.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!