Skip to content

Repository files navigation

Computer Science Fundamentals & Java Core

Repositório estruturado contendo implementações práticas de algoritmos, estruturas e conceitos essenciais de Ciência da Computação utilizando Java.

📂 Módulos

Implementações demonstrando os quatro pilares da Orientação a Objetos:

  • Abstração e Encapsulamento: Modelagem de domínios e proteção de atributos.
  • Herança e Polimorfismo: Reutilização de código e sobrescrita de métodos.
  • Interfaces e Classes Abstratas: Contratos de implementação e acoplamento fraco.

Técnicas de persistência local e leitura/escrita de fluxos de dados:

  • Leitura e escrita otimizada com BufferedReader e BufferedWriter.
  • Processamento de streams e parsing de dados estruturados (.txt/.csv).
  • Tratamento defensivo de exceções (IOException, FileNotFoundException).
  • Manipulação de arrays unidimensionais e multidimensionais (matrizes).
  • Algoritmos de busca linear e operações de inserção/remoção.
  • Laços de iteração condicional e determinada (for, while, do-while).
  • Controle de fluxo e desvios condicionais.

Aplicação em console para gerenciamento de acervo cinematográfico com arquitetura em camadas e persistência em arquivo plano:

  • Arquitetura em Camadas: Divisão de responsabilidades entre app (Interface/Console), model (Domínio), service (Regras de Negócio) e repository (Acesso a Dados I/O).
  • Operações CRUD: Criação, listagem, busca por ID, edição e exclusão de registros.
  • Validações Defensivas: Regras de negócio aplicadas no Service (limites de ano $\ge 1888$, duração $> 60$ minutos e validação de campos vazios).
  • Persistência I/O: Leitura e escrita síncrona no arquivo data/filmes.txt em formato delimitado.

🛠️ Tecnologias e Ferramentas

  • Linguagem: Java (JDK 11+)
  • Ambiente: Visual Studio Code
  • Versionamento: Git & GitHub

🚀 Como Executar

Módulos Simples (01 a 04)

# Navegar até o diretório e compilar
cd 01-object-oriented-programming
javac NomeDoArquivo.java
java NomeDoArquivo

About

Repositório dedicado ao estudo e implementação de conceitos fundamentais de Ciência da Computação, abordando estruturas de dados, algoritmos de ordenação/busca e resolução analítica de problemas.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages