Projeto de estudo desenvolvido para praticar e fixar os quatro pilares da Orientacao a Objetos (OOP) em Java: abstracao, heranca, encapsulamento e polimorfismo.
A aplicacao simula um sistema simples de gerenciamento de audios preferidos, utilizando musicas e podcasts como exemplos praticos dos conceitos estudados.
src/br/com/hugog/minhasmusicas/
├── modelos/
│ ├── Audio.java # Classe base (superclasse)
│ ├── Musica.java # Subclasse de Audio
│ ├── Podcast.java # Subclasse de Audio
│ └── MinhasPreferidas.java # Gerenciador de preferidos
└── principal/
└── Principal.java # Ponto de entrada da aplicacao
| Conceito | Onde aparece |
|---|---|
| Abstracao | Classe Audio modela o comportamento comum de todos os audios |
| Heranca | Musica e Podcast estendem Audio |
| Encapsulamento | Atributos private acessados via getters/setters |
| Polimorfismo | getClassificacao() sobrescrito em cada subclasse; MinhasPreferidas aceita qualquer Audio |
Representa qualquer tipo de conteudo de audio. Possui os atributos:
titulo— nome do audiototalReproducoes— contagem de reproducoestotalCurtidas— contagem de curtidasclassificacao— nota do audio
Metodos de acao:
reproduz()— incrementatotalReproducoescurte()— incrementatotalCurtidas
Adiciona os atributos album, cantor e genero.
Regra de classificacao (polimorfismo via @Override):
- Mais de 2000 reproducoes → nota 10
- Caso contrario → nota 7
Adiciona os atributos apresentador e descricao.
Regra de classificacao (polimorfismo via @Override):
- Mais de 500 curtidas → nota 10
- Caso contrario → nota 8
Recebe qualquer objeto do tipo Audio e exibe uma mensagem baseada na classificacao:
- Classificacao >= 9 → "sucesso absoluto e preferido por todos!"
- Classificacao < 9 → "um dos que todo mundo esta curtindo"
O polimorfismo garante que o getClassificacao() correto (de Musica ou Podcast) seja chamado automaticamente.
Pre-requisito: JDK 8 ou superior instalado.
-
Clone o repositorio:
git clone https://github.com/HugoGarcia1008/MusicClassificationPOO.git
-
Compile os arquivos a partir da pasta
src/:javac -d out src/br/com/hugog/minhasmusicas/**/*.java src/br/com/hugog/minhasmusicas/principal/Principal.java
-
Execute a classe principal:
java -cp out br.com.hugog.minhasmusicas.principal.Principal
BolhaDev é considerado sucesso absoluto e preferido por todos!
Nirvana também é um dos que todo mundo está curtindo
- Java (JDK 8+)
- IntelliJ IDEA