Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Usando os recursos de herança, pacotes e sobrescrita de métodos

package br.com.gilvaneidemedeiros.modelos;

public class Titulo {
    private String nome;
    private int anoLancamento;
    private boolean incluidoNoPlano;
    private double somaDasAvaliacoes;
    private int totalDeAvaliacoes;
    private int duracaoEmMinutos;


    public String getNome() { return nome; }

    public int getAnoLancamento() { return anoLancamento; }

    public boolean isIncluidoNoPlano() { return incluidoNoPlano; }

    public int getDuracaoEmMinutos() { return duracaoEmMinutos; }

    public double getSomaDasAvaliacoes() {
        return somaDasAvaliacoes;
    }

    public int getTotalDeAvaliacoes() {
        return totalDeAvaliacoes;
    }

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

    public void setAnoLancamento(int anoLancamento) {
        this.anoLancamento = anoLancamento;
    }

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

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

    public void exibeFichaTecnica() {
        System.out.println("Nome: " + nome);
        System.out.println("Ano de lançamento: " + anoLancamento);
        System.out.println("Duração em minutos: " + duracaoEmMinutos);

        if (incluidoNoPlano == true) {
            System.out.println("Incluído no plano: sim");
        } else {
            System.out.println("Não incluido no plano");
        }

    }
    public void avalia(double nota) {
        somaDasAvaliacoes += nota;
        totalDeAvaliacoes++;
    }

    public double pegaMedia() {
        return somaDasAvaliacoes / totalDeAvaliacoes;
    }
}
package br.com.gilvaneidemedeiros.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.gilvaneidemedeiros.modelos;

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

    public int getTemporadas() { return temporadas; }

    public int getEpisodiosPorTemporada() { return episodiosPorTemporada; }

    public boolean isAtiva() { return ativa; }

    public int getMinutosPorEpisodio() { return minutosPorEpisodio; }

    public void setTemporadas(int temporadas) { this.temporadas = temporadas; }

    public void setEpisodiosPorTemporada(int episodiosPorTemporada) { this.episodiosPorTemporada = episodiosPorTemporada; }

    public void setAtiva(boolean ativa){ this.ativa = ativa; }

    public void setMinutosPorEpisodio(int minutosPorEpisodio) { this.minutosPorEpisodio = minutosPorEpisodio; }

    @Override
    public int getDuracaoEmMinutos() {
        return temporadas * episodiosPorTemporada * minutosPorEpisodio;
    }
}
3 respostas

Classe Principal

import br.com.gilvaneidemedeiros.modelos.Filme;
import br.com.gilvaneidemedeiros.modelos.Serie;

public class Principal {
    public static void main(String[] args) {
        Filme meuFilme = new Filme();
        System.out.println("\n");
        meuFilme.setNome("Matrix");
        meuFilme.setAnoLancamento(1990);
        meuFilme.setDuracaoEmMinutos(180);
        meuFilme.setIncluidoNoPlano(false);
        meuFilme.setDiretor("Mel Gibson");

        meuFilme.exibeFichaTecnica();
        meuFilme.avalia(9);
        meuFilme.avalia(9);
        meuFilme.avalia(10);
        System.out.println("Soma das avaliações: " +meuFilme.getSomaDasAvaliacoes());
        System.out.println("Total das avaliações: " +meuFilme.getTotalDeAvaliacoes());
        System.out.println("Média de avaliações: " +meuFilme.pegaMedia());
        System.out.println("Diretor: " +meuFilme.getDiretor());
        System.out.println("Duração em minutos: " +meuFilme.getDuracaoEmMinutos());
        System.out.println("\n");

        Serie minhaSerie = new Serie();
        minhaSerie.setNome("Lost");
        minhaSerie.setAnoLancamento(2000);
        minhaSerie.setIncluidoNoPlano(true);
        minhaSerie.setTemporadas(15);
        minhaSerie.setEpisodiosPorTemporada(10);
        minhaSerie.setAtiva(true);
        minhaSerie.setMinutosPorEpisodio(60);

        minhaSerie.exibeFichaTecnica();
        minhaSerie.avalia(9);
        minhaSerie.avalia(7);
        minhaSerie.avalia(10);
        System.out.println("Soma das avaliações: " +minhaSerie.getSomaDasAvaliacoes());
        System.out.println("Total das avaliações: " +minhaSerie.getTotalDeAvaliacoes());
        System.out.println("Média de avaliações: " +minhaSerie.pegaMedia());
        System.out.println("Quantidade de temporadas: " +minhaSerie.getTemporadas());
        System.out.println("Quantidade de episódios por temporada: " +minhaSerie.getEpisodiosPorTemporada());
        System.out.println("A série está ativa? ");
            if (minhaSerie.isAtiva() == true) {
                System.out.println("Sim");
                } else {
                System.out.println("Não");
            }
        System.out.println("Quantidade de minutos por episódio: " +minhaSerie.getMinutosPorEpisodio());
        System.out.println("Duração em minutos: " +minhaSerie.getDuracaoEmMinutos());
    }
}
solução!

Oi, Gilvaneide! Como vai?

Gostei da forma como você estruturou as classes e utilizou herança para reaproveitar os atributos de Titulo em Filme e Serie. A sobrescrita do método getDuracaoEmMinutos na classe Serie ficou bem aplicada e mostra domínio dos conceitos de orientação a objetos.

Uma dica interessante para o futuro é explorar o uso de métodos toString() para personalizar a exibição das informações de um objeto, substituindo o System.out.println. Veja este exemplo:

@Override
public String toString() {
    return "Titulo: " + getNome() + ", Ano: " + getAnoLancamento();
}

Esse método retorna uma String com os dados principais do objeto, útil para exibir no console ou em logs.

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

Vou usar o método toString(). Gratidão.