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

[Projeto] Desafio

Código final do desafio, não consegui pensar em muita coisa para fazer e acabei refazendo algumas coisas de aulas anteriores. Aceito feedbacks

Main

import br.musica.calculo.Filtro;
import br.musica.modelo.Musica;
import br.musica.modelo.Podcast;

public class Main {
    public static void main(String[] args) {
        Musica musica = new Musica();
        musica.setTitulo("Living on a prayer");
        musica.setBanda("Bon Jovi");
        musica.setGenero("Rock");
        musica.setDuracao(320);
        for (int i = 0; i <3000 ; i++) {
            musica.curtir();
        }

        for (int i = 0; i < 10000; i++) {
            musica.reproduzir();
        }
        System.out.println("Reproduções " + musica.getReproducoes() );
        System.out.println("Curtidas " + musica.getCurtidas());

        Podcast  podcast = new Podcast();
        podcast.setConteudo("Tecnologia");
        podcast.setTitulo("Experiencia em programação");
        podcast.setHost("Dev++");
        for (int i = 0; i < 3000; i++) {
            podcast.reproduzir();
        }
        for (int i = 0; i <1350; i++) {
            podcast.curtir();
        }
        System.out.println("Reproduções " + podcast.getReproducoes() );
        System.out.println("Curtidas " + podcast.getCurtidas());
        Filtro filtro = new Filtro();

        System.out.print("Música: " );
        filtro.filtro(musica);
        System.out.print("Podcast: ");
        filtro.filtro(podcast);
    }
}

Super Classe Aúdio

package br.musica.modelo;

public class Audio {
    private String titulo;
    private int duracao;

    private int curtidas;
    private int totalReproducoes;


    public int getReproducoes() {
        return totalReproducoes;
    }

    public void reproduzir(){
        this.totalReproducoes++;
    }

    public void setTitulo(String titulo){
        this.titulo = titulo;
    }
    public String getTitulo(){
        return titulo;
    }
    public int getDuracao() {
        return duracao;
    }

    public void setDuracao(int duracao) {
        this.duracao = duracao;
    }


    public int getCurtidas(){
        return curtidas;
    }

    public void curtir(){
        this.curtidas += 1;
    }



}

Classe música

package br.musica.modelo;

import br.musica.calculo.Classificacao;

public class Musica extends Audio implements Classificacao {
    private String banda;
    private String genero;

    public String getBanda() {
        return banda;
    }
    public void setBanda(String banda) {
        this.banda = banda;
    }

    public String getGenero() {
        return genero;
    }

    public void setGenero(String genero) {
        this.genero = genero;
    }

    @Override
    public int getClassificacao() {
        if(getReproducoes() > 4000)
            return 10;
        else if(getReproducoes() < 4000 && getReproducoes() > 1000)
            return 7;
        else
            return 5;

    }
}

Classe podcast

package br.musica.modelo;

import br.musica.calculo.Classificacao;

public class Podcast extends Audio implements Classificacao {
    private String conteudo;
    private String host;

     public String getConteudo(){
         return conteudo;
     }

     public void setConteudo(String conteudo){
         this.conteudo = conteudo;
     }

    public String getHost() {
        return host;
    }
    public void setHost(String host) {
        this.host = host;
    }


    @Override
    public int getClassificacao() {
        if (getCurtidas() > 1000)
            return 10;
        else if(getCurtidas() < 1000 && getCurtidas() > 500)
            return 7;
        else
            return 5;
    }
}

Classe filtro

package br.musica.calculo;

public class Filtro {
    public void filtro(Classificacao c){
        switch (c.getClassificacao()){
            case(10):
                System.out.println("Favorito da galera");
                break;
            case(7):
                System.out.println("A galera curte");
            case (5):
                System.out.println("Recém lançadas");
        }
    }
}

Interface Classificacao

package br.musica.calculo;

public interface Classificacao {
    int getClassificacao();
}
1 resposta
solução!

Oii, Alysson! Tudo bem?

Peço desculpas pela demora para te responder.

Mandou muito bem, parabéns por praticar o desafio! O seu código está ótimo, bem estruturado e organizado.

Como ponto de melhoria, sugiro adicionar o break após o case(7) no método filtro(Classificacao c) que está na classe Filtro. Dessa forma, incluindo a classificação de 7, ele vai imprimir "A galera curte" e também "Recém lançadas".

Espero que tenha gostado da sugestão!

Continue se dedicando aos estudos e qualquer dúvida, não hesite em recorrer ao fórum.

Bons estudos, Alysson!