2
respostas

Minha Solução

void main() {
  Cliente clienteJoaquim = Cliente('Joaquim', []);

  clienteJoaquim.imprimeQuartos();
  clienteJoaquim.reservar(2);
  clienteJoaquim.cancelar(5);
  clienteJoaquim.reservar(3);
  clienteJoaquim.cancelar(2);
  clienteJoaquim.reservar(10);
}

class Cliente {
  String nome;
  List<int> _quartosReservados;

  Cliente(this.nome, this._quartosReservados);

  void reservar(int quarto) {
    print('\nQuarto $quarto adicionado com sucesso');
    _quartosReservados.add(quarto);
    imprimeQuartos();    
  }

  void cancelar(int quarto) {
    if (_quartosReservados.remove(quarto)) {
      print('\nQuarto $quarto foi removido com sucesso');
    } else {
      print('\nErro! Quarto $quarto não foi reservado');
    }
    imprimeQuartos();
  }

  void imprimeQuartos() {
    print('Quartos reservados por $nome: ${_quartosReservados.toString()}');
  }
}
2 respostas

Só lembrando que a minha resposta no VSCode, eu separei em dois arquivos diferentes a minha classe 'Cliente' e a função 'main()' para ter a segurança (private) da lista '_quartosReservados' em evidência.

Olá, Luís Henrique! Tudo bem?

Parabéns por compartilhar sua resolução da atividade e por separar a classe Cliente e a função main() em arquivos diferentes para garantir a privacidade da lista _quartosReservados! É uma ótima prática para organizar e proteger seu código.

Sua implementação dos métodos reservar, cancelar e imprimeQuartos está bem clara e funcional, atendendo ao que foi proposto no exercício.

Continue assim, praticando e explorando os conceitos de Orientação a Objetos com Dart!

Bons estudos!

Sucesso

Imagem da comunidade