Um sistema robusto para controle de acervo e fluxo de empréstimos, desenvolvido com foco em Orientação a Objetos.
Este projeto consiste em um sistema backend para gerenciamento de bibliotecas. O objetivo principal foi aplicar pilares da Programação Orientada a Objetos (POO) para resolver um problema real de negócio: o controle de inventário e circulação de livros.
O sistema permite que bibliotecários realizem operações de CRUD (Create, Read, Update, Delete) no acervo, além de gerenciar o estado de cada exemplar (disponível/emprestado) de forma segura.
- Java (JDK): Linguagem core do projeto.
- Java Collections Framework: Uso de
ArrayListpara manipulação dinâmica de dados. - POO: Encapsulamento, Métodos e Classes bem definidas.
O código foi arquitetado em classes com responsabilidades únicas:
Representa a entidade principal. Responsável por manter o estado do objeto (se está emprestado ou não) e suas informações vitais.
- Atributos: Título, Autor, ISBN, Status.
- Lógica: O método
reservar()possui validação interna para impedir que um livro já emprestado seja reservado novamente.
Atua como o controller do sistema. Ela gerencia a coleção de livros e expõe os métodos públicos para interação com o usuário.
- Busca Inteligente: Localiza livros por trechos do título.
- Gestão de IDs: Utiliza o ISBN como chave única para remoção e empréstimos.
Certifique-se de ter o Java JDK instalado em sua máquina.
- Clone o repositório:
git clone [https://github.com/seu-usuario/projeto-biblioteca.git](https://github.com/seu-usuario/projeto-biblioteca.git)
- Compile os arquivos:
javac *.java
- Execute o sistema:
java Main
☕ Exemplo de UsoAbaixo, um exemplo de como instanciar a biblioteca e realizar operações básicas:
public class Main {
public static void main(String[] args) {
// 1. Instanciando o sistema
Biblioteca biblioteca = new Biblioteca();
// 2. Adicionando livros ao acervo
biblioteca.adicionarLivro("Dom Casmurro", "Machado de Assis", "978-85-000");
biblioteca.adicionarLivro("Clean Code", "Robert C. Martin", "978-01-323");
// 3. Realizando um empréstimo pelo ISBN
if(biblioteca.emprestarLivro("978-85-000")) {
System.out.println("Livro emprestado com sucesso!");
}
// 4. Listando livros disponíveis
System.out.println(biblioteca.listarLivros());
}
}🔮 Melhorias FuturasEste projeto serve como base e pode ser expandido com:
- Implementação de interface gráfica (Swing ou JavaFX).
- Persistência de dados em Banco de Dados (MySQL ou SQLite).
- Sistema de multas por atraso na devolução.