Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Lista de exercícios: Aplicativo de reservas de hotel

// App - Reserva de Hospedagem

// Criando uma classe de cliente
class Cliente { 
    
    String hospede;
    
 /* Após pesquisas, resolvi  utilizar o atributo 'final' para garantir que a referência da lista não seja reatribuída,
permitindo apenas modificações no conteúdo (add/remove).
IMPORTANTE: Em sistemas mais complexos (com banco de dados, APIs, filtros ou sincronização), pode ser necessário remover o 'final' para permitir 
substituição completa da lista. */
    
    final List<String> _reservas;  

    Cliente(this.hospede, this._reservas);

// Realizando uma reserva
    void fazerReserva(String quarto) { 
        (_reservas.add(quarto)); //Adiciona o quarto à lista de reservas do cliente
        print('Reserva do quarto $quarto confirmada para $hospede');
        (_mostrarReserva()); // Exibe a lista de reservas atualizada
    }

// Cancelando uma reserva
    void cancelarReserva(String quarto) {  
        if (_reservas.contains(quarto)) { // Verifica se a reserva existe
            (_reservas.remove(quarto));  
            print('Reserva do quarto $quarto CANCELADA para $hospede');
            (_mostrarReserva());
        } else {
            print('$hospede não possui reserva para o quarto $quarto.');
        }
    }

// Função privada para exibir as reservas
    void _mostrarReserva() { 
        if (_reservas.isEmpty) {
            print('$hospede não possui reservas ativas.\n');
        } else {
            print('Reservas ativas de $hospede: $_reservas\n');
        }
    }
}

void main() {  

    print("\n------------ Reserva de Hospedagem ------------\n" );
    Cliente cliente = Cliente('Joaquim', []); // Cria um novo cliente
    cliente.fazerReserva('101');
    cliente.fazerReserva('102');
    cliente.fazerReserva('103');
    cliente.cancelarReserva('102');
}

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta
solução!

Oi José, tudo bem? 😊

Parabéns pelo seu código de reserva de hospedagem em Dart! 👍

A utilização do final para a lista de reservas é uma ótima prática para garantir a imutabilidade da referência, evitando que a lista seja substituída acidentalmente. 💪

Seu código está bem estruturado e fácil de entender. As funções de reserva, cancelamento e exibição de reservas estão claras e concisas. 🤗

Continue praticando e explorando os recursos do Dart para aprimorar ainda mais suas habilidades! 👏

🎓 Para saber mais: