Skip to content

joaofelipegalvao/screenmatch-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🎬 ScreenMatch - Projeto de Programação Orientada a Objetos em Java

Java POO Alura

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.

📚 Conteúdo do Curso

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

🏛️ Os 4 Pilares da POO

  • 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.

💻 Exemplos Práticos

📺 Modelagem de Filmes e Séries

public class Filme extends Titulo {
    private String diretor;

    @Override
    public int getClassificacao() {
        return (int) pegaMedia() / 2;
    }
}

🎞️ Calculadora de Tempo

public class CalculadoraDeTempo {
    private int tempoTotal;

    public void inclui(Titulo titulo) {
        this.tempoTotal += titulo.getDuracaoEmMinutos();
    }
}

⭐ Filtro de Recomendação (Interface)

public interface Classificavel {
    int getClassificacao();
}

🔍 Busca de Filmes com API OMDb

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);

💾 Salvando os dados em JSON

FileWriter escrita = new FileWriter("filmes.json");
escrita.write(gson.toJson(listaDeTitulos));
escrita.close();

⚠️ Exceção Personalizada

public class ErroDeConversaoDeAnoException extends RuntimeException {
    public ErroDeConversaoDeAnoException(String mensagem) {
        super(mensagem);
    }
}

🎯 Aprendizados

  • 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.

🔍 Reflexões

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.

👩‍🏫 Créditos

Projeto baseado no curso de Programação Orientada a Objetos com Java da Alura.
Instrutora: Jacqueline Oliveira.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages