Este projeto implementa um sistema básico para gerenciar reservas de quartos de hotel, utilizando os princípios da Programação Orientada a Objetos (POO) em Java.
- Herança: Demonstra a criação de classes especializadas (
QuartoSimples,QuartoLuxo) a partir de uma classe base abstrata (Quarto). - Abstração: A classe
Quartoé abstrata e define um contrato comum para os diferentes tipos de quartos, incluindo o método abstratodadosHotel(). - Polimorfismo: O método
calcularDiaria()é implementado de forma diferente emQuartoLuxo(incluindo taxas extras) eQuartoSimples, e o métododadosHotel()também exibe informações específicas para cada tipo de quarto. - Encapsulamento: Os atributos das classes são privados e acessados através de métodos
gettersesetters. - Composição/Agregação: A classe
Reserva"tem um"Quarto, e a classeGerenciadorReservas"tem uma lista de"Reserva, mostrando como objetos podem ser construídos a partir de outros. - API de Data e Hora (
java.time): Utilização da API moderna de datas para calcular a duração das reservas.
O projeto está organizado no pacote lista04.exercicio03 e inclui as seguintes classes:
Quarto.java: Classe abstrata base para os quartos do hotel, com atributos e métodos comuns.QuartoSimples.java: EstendeQuarto, representa um quarto simples.QuartoLuxo.java: EstendeQuarto, representa um quarto de luxo com taxas extras.Reserva.java: Gerencia os detalhes de uma reserva, incluindo o quarto, datas de entrada e saída, e calcula o valor total.GerenciadorReservas.java: Classe que gerencia uma coleção de reservas, permitindo adicionar, cancelar e listar reservas.Aplicativo.java: Classe principal com o métodomainpara demonstrar a funcionalidade do sistema.
- Clone o repositório:
git clone [https://github.com/SeuUsuario/HotelReservationSystemJava.git](https://github.com/SeuUsuario/HotelReservationSystemJava.git)
- Navegue até o diretório do projeto:
cd HotelReservationSystemJava - Compile os arquivos Java:
A partir da raiz do projeto (
HotelReservationSystemJava/), execute:(Este comando compila todos os arquivosjavac src/lista04/exercicio03/*.java -d out.javadentro do pacote e os coloca no diretórioout). - Execute a aplicação:
java -cp out lista04.exercicio03.Aplicativo
Ao executar o Aplicativo.java, você verá uma saída similar a esta no console:
Quarto Simples Numero: 101 Capacidade: 2 pessoas Valor da diária: 150.0 Data de entrada: 2025-07-10 Data de saída: 2025-07-13 Total de dias: 3 Valor total da reserva: R$ 450,00 Quarto Luxo Numero: 201 Capacidade: 3 pessoas Valor da diária: 325.0 Data de entrada: 2025-07-15 Data de saída: 2025-07-18 Total de dias: 3 Valor total da reserva: R$ 975,00