1
resposta

[Projeto] Meu projeto

Mostrando meu código (aceito críticas construtivas)

Arquivo Pai

package ConsolidandoConhecimento;

public class Musica {
    private String titulo;
    private int duracaoEmSegundos;
    private int totalReproducoes;
    private int curtidas;
    private double totalDeAvaliacoes;
    private int numeroDeAvaliacoes;
     
    public void avaliar(double nota) {
        this.totalDeAvaliacoes += nota;
        this.numeroDeAvaliacoes++;
    }
    
    public double pegaMedia() {
        if (numeroDeAvaliacoes == 0) {
            return  0;
        } 
        return totalDeAvaliacoes / numeroDeAvaliacoes;
    }

    public int reproduzir(){
        return totalReproducoes ++;  
    }
    public String getTitulo() {
        return titulo;
    }

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

    public int getDuracaoEmSegundos() {
        return duracaoEmSegundos;
    }

    public void setDuracaoEmSegundos(int duracaoEmSegundos) {
        this.duracaoEmSegundos = duracaoEmSegundos;
    }

    public int getTotalReproducoes() {
        return totalReproducoes;
    }

    public void setTotalReproducoes(int totalReproducoes) {
        this.totalReproducoes = totalReproducoes;
    }

    public void verificarAudiencia() {
        if (this.totalReproducoes > 1000) {
            System.out.println("Sucesso absoluto!");
        } else {
            System.out.println("Ainda vai longe!");
        }
    }

    public int getCurtidas() {
        return curtidas;
    }

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

    public double getClassificacao() {
        return  pegaMedia();
    }

    public void curtir() {
        this.curtidas++;
    }
}


Arquivo Principal:

package ConsolidandoConhecimento;

public class Principa { 
    public static void main(String[] args) {
        Musica musica = new Musica();

        musica.setTitulo("Na hora H");
        musica.setDuracaoEmSegundos(240);
        musica.setTotalReproducoes(10000);
        musica.setCurtidas(150);
        musica.avaliar(5);
        musica.avaliar(8);
        musica.avaliar(4);

        System.out.println("--- Primeira música ---");
        System.out.println("Título: " + musica.getTitulo());
        System.out.println("Duração (segundos): " + musica.getDuracaoEmSegundos());
        musica.reproduzir(); //acrescenta mais uma reprodução na conta das reproduções 
        System.out.println("Total de reproduções: " + musica.getTotalReproducoes());
        System.out.println(String.format("Média de avaliações: %.2f", musica.pegaMedia()));
        musica.verificarAudiencia();


        System.out.println("\n".repeat(2));
        System.out.println("--- Segunda música ---");
        Musica outraMusica = new Musica();
        outraMusica.setTitulo("Cem Mil");
        outraMusica.setDuracaoEmSegundos(300);
        outraMusica.setTotalReproducoes(20000);
        outraMusica.setCurtidas(250);
        outraMusica.avaliar(9);
        outraMusica.avaliar(10);
        outraMusica.avaliar(8);
        System.out.println("Título: " + outraMusica.getTitulo());
        System.out.println("Duração (segundos): " + outraMusica.getDuracaoEmSegundos());
        outraMusica.reproduzir();//acrescenta mais uma reprodução na conta das reproduções 
        System.out.println("Total de reproduções: " + outraMusica.getTotalReproducoes());
        System.out.println(String.format("Média de avaliações: %.2f", outraMusica.pegaMedia()));
        outraMusica.verificarAudiencia();
    }
}
1 resposta

Oi, João! Como vai?

Gostei de como você estruturou a classe Musica, principalmente o método pegaMedia(), que trata bem o caso sem avaliações. Sua organização deixa claro o fluxo de uso da classe no arquivo principal.

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