Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Resolução

package com.github.lucasdevrj.exercicios.controledereservas;

import java.time.MonthDay;
import java.time.format.DateTimeFormatter;

public class Reserva {

    private DateTimeFormatter formato = DateTimeFormatter.ofPattern("dd/MM");

    public void reservar() {
        System.out.println("Reserva realizada");
    }

    public void reservar(MonthDay data) {
        String dataFormatada = data.format(formato);
        String mensagem = String.format("Reserva feita para o dia %s", dataFormatada);
        System.out.println(mensagem);
    }

    public void reservar(MonthDay data, int quantidadePessoas) {
        String dataFormatada = data.format(formato);
        String mensagem = String.format("Reserva feita para o dia %s para %d pessoas", dataFormatada, quantidadePessoas);
        System.out.println(mensagem);
    }
}
package com.github.lucasdevrj.exercicios.controledereservas;

public class ReservaVip extends Reserva {

    @Override
    public void reservar() {
        System.out.println("Reserva VIP confirmada com atendimento exclusivo");
    }

}
/**
 * Imagine que você está desenvolvendo um sistema de gerenciamento para um sistema de entretenimento
 * que oferece diversos serviços, desde restaurantes até áreas de lazer. O sistema precisa lidar
 * com diferentes tipos de reservas, atendendo desde clientes casuais até os que possuem benefícios exclusivos.
 *
 * Crie um programa que:
 *
 * Tenha uma classe Reserva com três versões sobrecarregadas do método reservar():
 * Uma sem parâmetros, que imprime: "Reserva realizada"
 * Uma com data como parâmetro, que imprime: "Reserva feita para o dia [data]"
 * Uma com data e quantidade de pessoas, que imprime: "Reserva feita para o dia [data] para [X] pessoas"
 * Tenha uma subclasse ReservaVip, que herda de Reserva e sobrescreve o método reservar() sem parâmetros,
 * imprimindo uma mensagem exclusiva: "Reserva VIP confirmada com atendimento exclusivo"
 * Exemplo de entrada:
 *
 *
 * Reserva r = new Reserva();
 * r.reservar();
 * r.reservar("10/04");
 * r.reservar("12/04", 4);
 *
 * Reserva vip = new ReservaVip();
 * vip.reservar();
 *
 * Saída esperada:
 *
 * Reserva realizada
 * Reserva feita para o dia 10/04
 * Reserva feita para o dia 12/04 para 4 pessoas
 * Reserva VIP confirmada com atendimento exclusivo
 */

package com.github.lucasdevrj.exercicios.controledereservas;

import java.time.MonthDay;

public class Principal {
    public static void main(String[] args) {
        Reserva reserva = new Reserva();
        reserva.reservar();
        reserva.reservar(MonthDay.of(8, 10));
        reserva.reservar(MonthDay.of(3, 17), 3);

        ReservaVip reservaVip = new ReservaVip();
        reservaVip.reservar();
    }
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Beleza?

1 resposta

Olá, Lucas! Como vai?

Parabéns pela resolução da atividade!

Vi que você explorou a sobrecarga de métodos na classe Reserva para lidar com diferentes cenários de agendamento em Java, utilizou muito bem o DateTimeFormatter para formatar datas e ainda aplicou a herança com ReservaVip para sobrescrever o comportamento padrão e oferecer uma mensagem exclusiva.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Se quiser aprofundar ainda mais, algumas boas práticas são:

  • Validação de dados: garantir que a quantidade de pessoas seja positiva e que a data seja válida.
  • Construtores com parâmetros: facilitar a criação de reservas já com data e quantidade de pessoas.
  • Testes unitários: validar cada sobrecarga e sobrescrita para garantir que o comportamento esperado se mantém.

Ah, uma pergunta: você acha que expandir o sistema com diferentes tipos de reservas deixaria o projeto mais interessante e próximo de um cenário real de entretenimento?

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!