Classe Program:
Hospede hospede = new("Juliana Moura");
Quarto quarto = new(101);
quarto.ValorDiaria = 250;
Reserva reserva = new(hospede, quarto, 3);
reserva.MostrarDados();
Classe Hospede:
namespace Encapsulamento;
internal class Hospede(string nome)
{
public string Nome { get; private set; } = nome;
}
Classe Quarto:
namespace Encapsulamento;
internal class Quarto(int numero)
{
private decimal valorDiaria;
public int Numero { get; private set; } = numero;
public decimal ValorDiaria
{
get { return valorDiaria; }
set
{
if (value > 0)
{
valorDiaria = value;
}
else
{
Console.WriteLine("Erro: O valor da diária deve ser maior que zero.");
}
}
}
}
Classe Reserva:
namespace Encapsulamento;
internal class Reserva(Hospede hospede, Quarto quarto, int diarias)
{
private int diarias = SetDiarias(diarias);
public Hospede Hospede { get; private set; } = hospede;
public Quarto Quarto { get; private set; } = quarto;
public decimal ValorTotal
{
get
{
return Quarto.ValorDiaria * diarias;
}
}
private static int SetDiarias(int diarias)
{
if (diarias <= 0)
{
throw new ArgumentException("O número de diárias deve ser maior que zero.");
}
return diarias;
}
public void MostrarDados()
{
Console.WriteLine($"Reserva para: {Hospede.Nome}");
Console.WriteLine($"Quarto: {Quarto.Numero}");
Console.WriteLine($"Valor total: R$ {ValorTotal:N2}");
}
}