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?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
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!