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

[Dúvida] Desafio Áudio .

Está correto? Código da classe Main:

package br.com.alura.desafio.streamingmusica;

import br.com.alura.desafio.streamingmusica.modelos.Musicas;
import br.com.alura.desafio.streamingmusica.modelos.Podcasts;

public class Principal {
    public static void main(String[] args) {

        Musicas musica1 = new Musicas();
        musica1.setDuracao(6.09);
        musica1.setTitulo("Infinite Dreams");
        musica1.setAlbum("Seventh Son of a Seventh Son");
        musica1.setArtista("Iron Maiden");
        musica1.setGenero("Metal");

        musica1.linhaOrganiza();
        musica1.exibeDescricao();
        musica1.reproduz();
        musica1.curte();
        musica1.linhaOrganiza();


        Podcasts podcast1 = new Podcasts();
        podcast1.setEpisodio(32);
        podcast1.setDuracao(30.39);
        podcast1.setTitulo("Carreira e Dia da Programação");
        podcast1.setHost("Paulo Silveira");

        podcast1.exibeDescricao();
        podcast1.curte();
        musica1.linhaOrganiza();

    }
}

Código da Superclasse:

package br.com.alura.desafio.streamingmusica;

public class Audio {
    //Atributos.
    private double duracao;
    private String titulo;


    //Getters e Setters
    public String getTitulo() {
        return titulo;
    }

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

    public double getDuracao() {
        return duracao;
    }

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


    //Métodos.
    public void curte() {
        System.out.println("Você curtiu este som!");
    }

    public void reproduz() {
        System.out.println("Reproduzindo " + "\"" + titulo + "\"" + " ♫");
    }

    public void linhaOrganiza() {
        System.out.println("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
    }
}

Código da Subclasse 1:

package br.com.alura.desafio.streamingmusica.modelos;

import br.com.alura.desafio.streamingmusica.Audio;
import br.com.alura.desafio.streamingmusica.interfaces.Texto;

public class Musicas extends Audio implements Texto {
    //Atributos.
    String album;
    String artista;
    String genero;

    //Getters e Setters.
    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;
    }

//Métodos.
    @Override
    public void exibeDescricao() {
        String descricaoMusicas = """
                Título: %s          Artista: %s
                Álbum: %s           Duração: %.2f
                Gênero: %s
                """.formatted(getTitulo(), artista, album, getDuracao(), genero);
        System.out.println(descricaoMusicas);
    }
}

Código da Subclasse 2:

package br.com.alura.desafio.streamingmusica.modelos;

import br.com.alura.desafio.streamingmusica.Audio;
import br.com.alura.desafio.streamingmusica.interfaces.Texto;

public class Podcasts extends Audio implements Texto {
//Atributos.
    String host;
    int episodio;

//Getters e Setters.
    public void setHost(String host) {
        this.host = host;
    }

    public void setEpisodio(int episodio) {
        this.episodio = episodio;
    }

    //Métodos.
    @Override
    public void exibeDescricao() {
        String descricaoPodcast = """
                ~ Hipsters Ponto Tech
                Episódio #%d
                %s
                Host: %s
                Duração: %.2f
                """.formatted(episodio, getTitulo(), host, getDuracao());
        System.out.println(descricaoPodcast);
    }

    public void curte() {
        System.out.println("Você curtiu este podcast!");
    }

    @Override
    public void reproduz() {
        System.out.println("Reproduzindo " +  "\"" + getTitulo() + "\"" + " ▶");
    }

}

Código da Interface:

package br.com.alura.desafio.streamingmusica.interfaces;

public interface Texto {
    void exibeDescricao();
}

Tentei fazer sozinho e ver os vídeos de sugestão após a conclusão, não quis implementar o "for" para "classifica" e "reprodução" e não consegui pensar numa maneira de apresentar os dados sem setar um valor absoluto. Apliquei os conceitos que aprendi sobre herança, polimorfismo e interface, queria saber se mais para frente em outros cursos vai ser abordado esses temas novamente senão poderia me sugerir algum conteúdo para que eu possa entender mais?

1 resposta
solução!

Oii, Messias! Tudo bem?

Parabéns por concluir o desafio proposto na atividade! A prática é muito importante para qualquer pessoa Dev.

Você mandou muito bem aplicando, na prática, os conceitos herança, polimorfismo e interface. Sobre a sua dúvida, sim, será abordado em outros cursos. Como são conteúdos fundamentais quando se trata de programação orientada a objetos, eles são bem presentes em nosso cronograma.

Mas caso queira mergulhar nesse assunto com outros tipos de conteúdos, na plataforma pode explorar os podcasts, artigos, desafios e também o fórum. Além disso, as documentações oficiais das tecnologias são de extrema importância para auxiliar nos estudos.

Espero ter ajudado. Continue interagindo no fórum compartilhando suas dúvidas, feedbacks e projetos.

Bons estudos, Messias!