1
resposta

[Projeto] projeto final musica

package br.com.jp.Myspotify.Main;

import br.com.jp.Myspotify.models.Music;
import br.com.jp.Myspotify.models.Myfavorits;
import br.com.jp.Myspotify.models.Podcast;

public class Main {
public static void main(String[] args) {
Music hope = new Music();
Podcast Bolhacast = new Podcast();
Myfavorits fav = new Myfavorits();

    hope.setArtist("jack johnson");
    hope.setTitle("hope");

    for (int i = 0; i < 1000; i++) {
        hope.reproduction();
    }

    for (int i = 0; i < 50; i++) {
        hope.like();
    }


    Bolhacast.setTitle("bolhadev");
    Bolhacast.setHost("marcos mendes");

    for (int i = 0; i < 5000; i++) {
        Bolhacast.reproduction();
    }

    for (int i = 0; i < 1000; i++) {
        Bolhacast.like();
    }

    fav.includ(hope);
    fav.includ(Bolhacast);


}

}

//Superclasse "Áudio":
//Atributos: título, duração, total de reproduções, curtidas
//e classificação.Métodos: curtir, reproduzir (encapsulados).
//Classes filhas:"Podcasts" e "Músicas" (herança da superclasse "Áudio").
//Encapsulamento:Proteger os atributos da classe "Áudio".
//Classe para controlar:Músicas e podcasts preferidos.

//o que precisa ter :

//Orientação a Objetos (OO):
//Herança
//Polimorfismo
//Encapsulamento
//Classes:
//Superclasse "Áudio"
//Classes filhas "Podcasts" e "Músicas"
//Atributos:
//Título, duração, total de reproduções, curtidas e
//classificação (na classe "Áudio") Métodos:
//Curtir, reproduzir (na classe "Áudio")package br.com.jp.Myspotify.models;

public class Audio {
private String Title;
private int TotalReproduction;
private int TotalLikes;
private int Classifing;

public int getClassifing() {
    return Classifing;
}

public void setClassifing(int classifing) {
    Classifing = classifing;
}

public String getTitle() {
    return Title;
}

public void setTitle(String title) {
    Title = title;
}

public int getTotalReproduction() {
    return TotalReproduction;
}

public void setTotalReproduction(int totalReproduction) {
    TotalReproduction = totalReproduction;
}

public int getTotalLikes() {
    return TotalLikes;
}

public void setTotalLikes(int totalLikes) {
    TotalLikes = totalLikes;
}


public void like() {
    TotalLikes++;

}

public void reproduction() {
    TotalReproduction++;
}

}
package br.com.jp.Myspotify.models;

public class Music extends Audio {
private String Album;
private String Artist;
private String Genre;

public String getAlbum() {
    return Album;
}

public void setAlbum(String album) {
    Album = album;
}

public String getArtist() {
    return Artist;
}

public void setArtist(String artist) {
    Artist = artist;
}

public String getGenre() {
    return Genre;
}

public void setGenre(String genre) {
    Genre = genre;
}

@Override
public int getClassifing() {
    if (getTotalReproduction() > 2000) {
        return 10;

    } else {
        return 7;
    }
}

}
package br.com.jp.Myspotify.models;

public class Myfavorits {

public void includ(Audio audio) {
    if (audio.getClassifing() >= 9) {
        System.out.println("title" + audio.getTitle() + "sucesso");
    } else {
        System.out.println("tem quem goste " + audio.getTitle());
    }

}

}
package br.com.jp.Myspotify.models;

public class Podcast extends Audio {
private String Host;
private String description;

public String getHost() {
    return Host;
}

public void setHost(String host) {
    Host = host;
}

public String getDescription() {
    return description;
}

public void setDescription(String description) {
    this.description = description;
}

@Override
public int getClassifing() {

    if (getTotalLikes() > 500) {
        return 10;
    }

    else {
        return 8;
    }

}

}

1 resposta

Oi, Joao! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Ficou bem clara a aplicação dos pilares da orientação a objetos, com destaque para o uso de herança, encapsulamento e polimorfismo. A lógica usada no método getClassifing() para diferenciar música e podcast está bem aplicada.

Uma dica interessante para o futuro é usar o método toString() para imprimir informações do objeto de forma mais organizada:


@Override
public String toString() {
    return "Título: " + getTitle() + ", Reproduções: " + getTotalReproduction();
}

Esse método permite exibir os dados do objeto automaticamente com System.out.println(objeto);.

Alura

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