Este projeto é um sistema básico de gerenciamento de hotel desenvolvido em Java com foco em Programação Orientada a Objetos (POO). O sistema permite o cadastro de hóspedes e quartos, a realização de reservas com adição de serviços extras e a geração de faturas.
- Cadastro de hóspedes e quartos (simples e luxo)
- Realização de reservas com verificação de disponibilidade
- Adição de serviços extras por reserva
- Geração de faturas com cálculo de valor total
- Exibição de informações de hóspedes, quartos e reservas
- Pessoa (abstrata) → Classe base com nome, CPF e telefone
- Hospede → Subclasse de Pessoa com e-mail
- Quarto (abstrata) → Representa um quarto genérico
- QuartoSimples → Inclui tipo de cama
- QuartoLuxo → Inclui cama, jacuzzi, varanda e café da manhã
- Servico → Serviço avulso ou incluído na reserva
- Reserva → Associa um hóspede a um quarto com um período e serviços
- Fatura → Agrupa reservas e serviços cobrados
- Hotel → Controla o cadastro e listagem de hóspedes, quartos e reservas
- Java 17+
- Orientação a Objetos
- Collections API (
List
,Optional
) - PlantUML (para diagrama de classes)
- Clone o repositório:
git clone https://github.com/HugoNicolau/Java-POO-Hotel.git
- Compile o projeto:
javac App.java
- Execute a aplicação:
java App
Obs: o método main da classe App cria dados de exemplo para simular o uso do sistema.
--- Fatura João ---
Reserva - Quarto Simples: 101, Capacidade: 2, Preço por Noite: R$150.0, Tipo de Cama: Casal - Total: R$...
Servico: Lavanderia - R$50.0
TOTAL: R$...
--- Fatura Maria ---
Reserva - Quarto Luxo: 201, Capacidade: 2, Preço por Noite: R$300.0, Tipo de Cama: King, Jacuzzi: Sim, Café da Manhã: Sim, Varanda: Sim - Total: R$...
TOTAL: R$...
Você pode visualizar o diagrama completo de classes do projeto clicando no link abaixo:
-
Persistência de dados em arquivos
-
Interface gráfica com JavaFX ou Swing
-
Testes automatizados com JUnit
-
Interface via terminal para interação dinâmica
Este projeto foi desenvolvido para praticar:
-
Conceitos de abstração, encapsulamento, herança e polimorfismo
-
Utilização de interfaces e classes abstratas
-
Organização e legibilidade de código orientado a objetos
Desenvolvido por Hugo Nicolau como parte de estudos de Programação Orientada a Objetos com Java.