Este repositório contém meus aprendizados, códigos e reflexões sobre os conceitos fundamentais da Programação Orientada a Objetos (POO) em Java, desenvolvidos no projeto ScreenMatch durante o curso da Alura.
| Módulo | Descrição | Conceitos-chave |
|---|---|---|
| 1️⃣ | Pilares da POO | Abstração, Encapsulamento, Herança, Polimorfismo |
| 2️⃣ | Modelagem de Classes | Atributos, Métodos, Organização em Pacotes |
| 3️⃣ | Encapsulamento e Controle de Acesso | private, getters, setters |
| 4️⃣ | Herança e Especialização | extends, super, sobrescrita de métodos |
| 5️⃣ | Polimorfismo e Interfaces | Reaproveitamento e especialização de comportamentos |
- Encapsulamento → Protege os dados da classe, controlando o acesso aos atributos.
- Herança → Permite que classes compartilhem atributos e comportamentos, evitando código duplicado.
- Abstração → Cria representações genéricas para objetos do mundo real.
- Polimorfismo → Permite que métodos se comportem de maneira diferente conforme a subclasse.
public class Filme extends Titulo {
private String diretor;
@Override
public int getClassificacao() {
return (int) pegaMedia() / 2;
}
}public class CalculadoraDeTempo {
private int tempoTotal;
public void inclui(Titulo titulo) {
this.tempoTotal += titulo.getDuracaoEmMinutos();
}
}public interface Classificavel {
int getClassificacao();
}HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder().uri(URI.create(endereco)).build();
HttpResponse<String> response = client.send(request, BodyHandlers.ofString());
TituloOmdb meuTituloOmdb = gson.fromJson(response.body(), TituloOmdb.class);FileWriter escrita = new FileWriter("filmes.json");
escrita.write(gson.toJson(listaDeTitulos));
escrita.close();public class ErroDeConversaoDeAnoException extends RuntimeException {
public ErroDeConversaoDeAnoException(String mensagem) {
super(mensagem);
}
}- Aplicação prática dos quatro pilares da POO.
- Organização do código em pacotes e classes especializadas.
- Integração com API externa para busca de dados.
- Uso da biblioteca Gson para conversão entre JSON e objetos Java.
- Criação e uso de interfaces para contratos de comportamento.
- Implementação de polimorfismo utilizando referências genéricas.
- Boas práticas de encapsulamento e acesso controlado a atributos.
Trabalhar com POO através do projeto ScreenMatch foi essencial para entender como organizar melhor o código, promover reuso e criar sistemas mais flexíveis e fáceis de manter. A prática dos conceitos de herança, polimorfismo, interfaces e integração com serviços externos foi fundamental para consolidar o aprendizado.
Projeto baseado no curso de Programação Orientada a Objetos com Java da Alura.
Instrutora: Jacqueline Oliveira.