1
resposta

Desafio

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(); }

1 resposta

Oi, José, tudo bem?

Parabéns pelo resultado e agradeço por compartilhar seu resultado. Tenho certeza que sua contribuição vai ser muito valiosa para a comunidade do fórum!

Continue mergulhando em tecnologia e se tiver dúvidas, conte com o fórum.

Abraços e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software