Repositório estruturado contendo implementações práticas de algoritmos, estruturas e conceitos essenciais de Ciência da Computação utilizando Java.
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
BufferedReadereBufferedWriter. - 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) erepository(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.txtem formato delimitado.
- Linguagem: Java (JDK 11+)
- Ambiente: Visual Studio Code
- Versionamento: Git & GitHub
# Navegar até o diretório e compilar
cd 01-object-oriented-programming
javac NomeDoArquivo.java
java NomeDoArquivo