namespace PraticandoEncapsulamento.Classes;
internal class Hospede
{
//Atributos
public string Nome { get; }
//Construtor
public Hospede(string nome)
{
Nome = nome;
}
}
namespace PraticandoEncapsulamento.Classes;
internal class Quarto
{
//Atributos
public int Numero { get; set; }
private decimal _valorDiaria;
public decimal ValorDiaria
{
get => _valorDiaria;
set
{
if (value <= 0)
throw new ArgumentException("O valor da diária deve ser maior que zero.");
_valorDiaria = value;
}
}
}
namespace PraticandoEncapsulamento.Classes;
internal class Reserva
{
//Atributos
private int Diarias { get; set; }
public Hospede Hospede { get; }
public Quarto Quarto { get; }
public int ValorTotal { get; }
//Construtor
public Reserva(Hospede hospede, Quarto quarto, int diarias)
{
if (diarias <= 0)
throw new ArgumentException("O número de diárias deve ser maior que zero.");
Hospede = hospede;
Quarto = quarto;
Diarias = diarias;
ValorTotal = CalcularValorTotal();
Console.WriteLine($"Reserva para: {hospede.Nome} \nQuarto: {quarto.Numero}\nValor total: R$ {ValorTotal}");
}
//Métodos
private int CalcularValorTotal()
{
return (int)(Diarias * Quarto.ValorDiaria);
}
}
using PraticandoEncapsulamento.Classes;
Hospede hospede = new Hospede("Juliana Moura");
Quarto quarto = new Quarto();
quarto.Numero = 101;
quarto.ValorDiaria = 250;
Reserva reserva = new Reserva(hospede, quarto, 3);