1
resposta

[Projeto] Projeto Desafio - Minhas musica (minha versao)-Audio App

Fala galerinha, este projeto de estudo eu fiz desta forma: Classe abstrata Audio

package br.com.ac.meusaudios.modelos;

public abstract class Audio {
    protected String titulo;
    protected int totalReproducoes;
    protected int totalCurtidas;
    protected int classificacao;
    protected int totalAvaliacoes;
    protected int somaNotas;

    public Audio(String titulo) {
        this.titulo = titulo;
    }

    public void curte() {
        totalCurtidas++;
    }

    public void reproduz() {
        totalReproducoes++;
    }

    public void avalia(int nota) {
        if (nota < 1 || nota > 5) {
            System.out.println("Nota inválida!\nInforme um valor de 1 a 5.");
            return;
        }
        somaNotas += nota;
        totalAvaliacoes++;
        classificacao = somaNotas / totalAvaliacoes;
    }

    public abstract void exibeDetalhes();

    public int getClassificacao() {
        return classificacao;
    }
}

subclasse Musica:

package br.com.ac.meusaudios.modelos;

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

    public Musica(String titulo, String album, String artista, String genero) {
        super(titulo);
        this.album = album;
        this.artista = artista;
        this.genero = genero;
    }

    public String getAlbum() {
        return album;
    }

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

    public String getArtista() {
        return artista;
    }

    public void setArtista(String artista) {
        this.artista = artista;
    }

    public String getGenero() {
        return genero;
    }

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

    @Override
    public void exibeDetalhes() {
        System.out.println("Música: " + titulo);
        System.out.println("Álbum: " + album);
        System.out.println("Artista: " + artista);
        System.out.println("Gênero: " + genero);
        System.out.println("Total de Curtidas: " + totalCurtidas);
        System.out.println("Total de Reproduções: " + totalReproducoes);
        System.out.println("Classificação: " + classificacao);
        System.out.println();
    }
}

subclasse Podcast:

package br.com.ac.meusaudios.modelos;

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

    public Podcast(String titulo, String host, String descricao) {
        super(titulo);
        this.host = host;
        this.descricao = descricao;
    }
    
    public String getHost() {
        return host;
    }

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

    public String getDescricao() {
        return descricao;
    }

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

    @Override
    public void exibeDetalhes() {
        System.out.println("Podcast: " + titulo);
        System.out.println("Host: " + host);
        System.out.println("Descrição: " + descricao);
        System.out.println("Total de Curtidas: " + totalCurtidas);
        System.out.println("Total de Reproduções: " + totalReproducoes);
        System.out.println("Classificação: " + classificacao);
        System.out.println();
    }
}

Classe App:

package br.com.ac.meusaudios.modelos;

public class App {
    public static void main(String[] args) {
        Musica musica1 = new Musica("Fear of the Dark", "Fear of the Dark", "Iron Maiden", "Metal");
        Podcast podcast1 = new Podcast("DevTalks", "Anderson Chaves", "Discussões sobre desenvolvimento.");

        musica1.reproduz();
        musica1.curte();
        musica1.avalia(5);
        musica1.avalia(4);
        musica1.exibeDetalhes();

        podcast1.reproduz();
        podcast1.reproduz();
        podcast1.curte();
        podcast1.avalia(5);
        podcast1.avalia(3);
        podcast1.exibeDetalhes();
    }
}

Por favor deixem o feedback de vocês. pra quem quiser verificar o repositorio no GitHub, aqui esta o link: Repositorio Remoto

1 resposta

Muito massa amigo, parabéns! Ficou excelente!