2
respostas

[Projeto] Solução do Desafio Screenmatch Listening

Aqui está a minha solução do desafio final do curso.

Estarei ao longo do tempo aplicando melhorias neste código.

Main

import com.screenmatch.listening.modules.Audio;
import com.screenmatch.listening.modules.Musicas;
import com.screenmatch.listening.modules.Podcasts;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);

        int escolha = 0;
        int escolhaMusica;
        int escolhaPodcast;

        while (escolha != 3) {
            
            System.out.println("-- Bem vindo ao Screenmatch Listening --\n");
            System.out.println("O que deseja reproduzir?");
            System.out.println("""
                \n1- Músicas
                2- Podcasts
                3- Sair do screenmatch
                """);

            escolha = scan.nextInt();

            switch (escolha) {
                case 1:
                    Audio musica = new Musicas();

                    System.out.println("Escolha as músicas disponíveis:");
                    System.out.println("[1] - There's a light that never goes out - The Smiths");
                    System.out.println("[2] - 1979 - The Smashing Pumpkins");

                    escolhaMusica = scan.nextInt();

                    switch(escolhaMusica) {
                        case 1:
                            ((Musicas) musica).setArtista("The Smiths");
                            musica.setTitulo("There's a light that never goes out");
                            ((Musicas) musica).setAnoDeLancamento(1986);
                            ((Musicas) musica).setAlbum("The Queen Is Dead");
                            musica.setCurtidas(486);
                            musica.setDuracaoEmMin(4.03);
                            musica.setTotalDeRep(42000);
                            break;

                        case 2:
                            musica.setTitulo("1979");
                            ((Musicas) musica).setArtista("The Smashing Pumpkins");
                            ((Musicas) musica).setAnoDeLancamento(1995);
                            ((Musicas) musica).setAlbum("Mellon Collie and the Infinite Sadness");
                            musica.setCurtidas(1000);
                            musica.setDuracaoEmMin(4.24);
                            musica.setTotalDeRep(100000);
                        
                            break;


                        default:
                            System.out.println("OPÇÃO INVÁLIDA");
                            break;
                    }

                    ((Musicas) musica).showDataMusics();
                    break;
                    
                case 2:
                    Podcasts podcast = new Podcasts();

                    System.out.println("Escolha uma das entrevistas disponíveis:");
                    System.out.println("[1] - Tamo competindo, tamo competindo - PodPah");
                    System.out.println("[2] - A CORDA - Flow Podcast");

                    escolhaPodcast = scan.nextInt();

                    switch (escolhaPodcast) {
                        case 1:
                            podcast.setTitulo("MAX VERSTAPPEN & SERGIO PÉREZ - Podpah #841");
                            podcast.setCurtidas(60000);
                            podcast.setDuracaoEmMin(44);
                            podcast.setTotalDeRep(772000);

                            break;
                        case 2:
                            podcast.setTitulo("KIM KATAGUIRI E TABATA AMARAL  - Flowpodcast #545");
                            podcast.setCurtidas(951);
                            podcast.setDuracaoEmMin(240);
                            podcast.setTotalDeRep(897000);

                            break;

                        default:
                            System.out.println("OPÇÃO INVÁLIDA");
                            break;
                    }

                    ((Podcasts) podcast).showDataPodcasts();
                    break;
            }

        }
    }
}
2 respostas
Class Audio

package com.screenmatch.listening.modules;

public class Audio {
    private String Titulo;
    private double duracaoEmMin;
    private int totalDeRep;
    private int curtidas;
    private double classificacao;

    //getters and setters para atribuir os valores nas var

    public String getTitulo() {
        return Titulo;
    }

    public void setTitulo(String titulo) {
        Titulo = titulo;
    }

    public double getDuracaoEmMin() {
        return duracaoEmMin;
    }

    public void setDuracaoEmMin(double duracaoEmMin) {
        this.duracaoEmMin = duracaoEmMin;
    }

    public int getTotalDeRep() {
        return totalDeRep;
    }

    public void setTotalDeRep(int totalDeRep) {
        this.totalDeRep = totalDeRep;
    }

    public int getCurtidas() {
        return curtidas;
    }

    public void setCurtidas(int curtidas) {
        this.curtidas = curtidas;
    }

    public double getClassificacao() {
        return classificacao;
    }

    public void setClassificacao(double classificacao) {
        this.classificacao = classificacao;
    }

    // métodos

    public int curtir(){
        return curtidas++;
    }

    public void reproduzir() {
        System.out.println("Reproduzindo ...");
    }

    public void adicionarFav() {

    }

}
Class musicas

package com.screenmatch.listening.modules;

public class Musicas extends Audio{
    private String artista;
    private String album;
    private int anoDeLancamento;

    public String getArtista() {
        return artista;
    }

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

    public String getAlbum() {
        return album;
    }

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

    public int getAnoDeLancamento() {
        return anoDeLancamento;
    }

    public void setAnoDeLancamento(int anoDeLancamento) {
        this.anoDeLancamento = anoDeLancamento;
    }

    public void showDataMusics() {
        System.out.println("\nReproduzindo:\n" + getTitulo());
        System.out.println("Artista: " + getArtista());
        System.out.println("Álbum: " + getAlbum());
        System.out.println("Ano de lançamento: " + getAnoDeLancamento());
        System.out.println("Curtidas: " + getCurtidas());
        System.out.println("Duração: " + getDuracaoEmMin());
        System.out.println("Total de reproduções: " + getTotalDeRep() +"\n");
    }
}
Class Podcasts

package com.screenmatch.listening.modules;

public class Podcasts extends Audio{
    private String produtora;
    private String Tema;

    public String getProdutora() {
        return produtora;
    }

    public void setProdutora(String produtora) {
        this.produtora = produtora;
    }

    public String getTema() {
        return Tema;
    }

    public void setTema(String tema) {
        Tema = tema;
    }

    public void showDataPodcasts() {
        System.out.println("\nReproduzindo:\n" + getTitulo());
        System.out.println("Por: " + getProdutora());
        System.out.println("Entrevista de tipo: " + getTema());
        System.out.println("Curtidas: " + getCurtidas());
        System.out.println("Duração: " + getDuracaoEmMin());
        System.out.println("Total de reproduções: " + getTotalDeRep() +"\n");
    }
}

Olá, Maylon. Tudo bem?

Muito obrigado por compartilhar o seu código aqui com a gente. Parabéns pelo trabalho. Continue com essa dedicação.

Ótimo como você estruturou a interação no console para selecionar músicas e podcasts. O uso do switch-case para manipular as escolhas é uma boa prática para organizar o fluxo do programa. Está correto.

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