1
resposta

Projeto final do desafio

Principal

package br.com.alura.minhasmusicas.principal;

import br.com.alura.minhasmusicas.modelos.MinhasPreferidas;
import br.com.alura.minhasmusicas.modelos.Musica;
import br.com.alura.minhasmusicas.modelos.Podcast;

public class Principal {
    public static void main(String [] args){
        Musica minhaMusica= new Musica();
        minhaMusica.setTitulo("Provider");
        minhaMusica.setCantor("Token sleep");

        for (int i = 0; i < 1000; i++) {
            minhaMusica.reproduz();
            
        }

        for (int i = 0; i < 50; i++) {
            minhaMusica.curte();

        }

        Podcast meuPodcast = new Podcast();
        meuPodcast.setTitulo("Diva da diva");
        meuPodcast.setApresentador("Edu e Fih");

        for (int i = 0; i < 5000; i++) {
            meuPodcast.reproduz();
            
        }

        for (int i = 0; i < 1000; i++) {
            meuPodcast.curte();
            
        }
        MinhasPreferidas preferidas = new MinhasPreferidas();
        preferidas.inclui(meuPodcast);
        preferidas.inclui(minhaMusica);

    }
}

Musica

package br.com.alura.minhasmusicas.modelos;

public class Musica extends Audio {
    private String album;
    private String cantor;
    private String genero;

    public String getAlbum() {
        return album;
    }

    public void setAlbum(String album) {
        this.album = album;
    }

    public String getCantor() {
        return cantor;
    }

    public void setCantor(String cantor) {
        this.cantor = cantor;
    }

    public String getGenero() {
        return genero;
    }

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

    @Override
    public int getClassificacao() {
        if (this.getTotalReproducoes() >2000){
            return 10;
        }else{
            return 7;
        }

    }
}

Podcast

package br.com.alura.minhasmusicas.modelos;

public class Podcast extends Audio {
    private String apresentador;
    private String descricao;

    public String getApresentador() {
        return apresentador;
    }

    public void setApresentador(String apresentador) {
        this.apresentador = apresentador;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    @Override
    public int getClassificacao() {
        if (this.getTotalCurtidas()> 500){
            return 10;
        } else {
            return 8;
        }

    }
}

Minhas Preferidas

package br.com.alura.minhasmusicas.modelos;

public class MinhasPreferidas {

    public void inclui(Audio audio){
        if(audio.getClassificacao()>=9){
            System.out.println(audio.getTitulo()+" é considerado sucesso absoluto" + "e preferido por todos");
        }else {
            System.out.println(audio.getTitulo()+ " também é uns que todo mundo está curtindo");


        }
    }


}

Audio

package br.com.alura.minhasmusicas.modelos;

public class Audio {
    private String titulo;
    private int totalReproducoes;
    private int totalCurtidas;
    private int classificacao;


    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public int getTotalReproducoes() {
        return totalReproducoes;
    }

    public int getTotalCurtidas() {
        return totalCurtidas;
    }

    public int getClassificacao() {
        return classificacao;
    }

    public void curte(){
        this.totalCurtidas++;

    }
    public void reproduz(){
        this.totalReproducoes++;
    }
}
1 resposta

Oi, Brenda! Como vai?

Gostei da forma como você estruturou as classes para modelar músicas e podcasts usando herança da classe Audio, além de aplicar polimorfismo no método getClassificacao(). Isso demonstra um bom entendimento da orientação a objetos, especialmente no controle de reproduções e curtidas para definir classificações diferentes para cada tipo de áudio.

Uma dica interessante para o futuro é usar o método String.format() para melhorar a formatação das mensagens, deixando o código mais legível e flexível. Veja este exemplo:

  
String mensagem = String.format("%s é considerado sucesso absoluto e preferido por todos", audio.getTitulo());  
System.out.println(mensagem);  

Este código cria uma mensagem formatada com o título do áudio e imprime no console. String.format() ajuda a inserir variáveis em strings de forma clara.

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