Classe Program:
Curso curso = new("Lógica de Programação", 2);
curso.Matricular(new Estudante("Rafaela"));
curso.Matricular(new Estudante("João"));
curso.Matricular(new Estudante("Mirela")); // excede o limite
curso.ListarMatriculados();
Classe Estudante:
namespace Encapsulamento;
internal class Estudante(string nome)
{
public string Nome { get; private set; } = nome;
}
Classe Curso:
namespace Encapsulamento;
internal class Curso(string nome, int vagasTotais)
{
private List<Estudante> matriculas = [];
public string Nome { get; set; } = nome;
public int VagasTotais { get; private set; } = vagasTotais;
public int VagasDisponiveis => VagasTotais - matriculas.Count;
public bool Matricular(Estudante estudante)
{
if (VagasDisponiveis > 0)
{
matriculas.Add(estudante);
Console.WriteLine("Estudante matriculado com sucesso.");
return true;
}
else
{
Console.WriteLine("Erro: Não há vagas disponíveis para este curso.");
return false;
}
}
public void ListarMatriculados()
{
Console.WriteLine($"Estudantes matriculados em {Nome}:");
foreach (Estudante estudante in matriculas)
{
Console.WriteLine($"- {estudante.Nome}");
}
Console.WriteLine($"Vagas disponíveis: {VagasDisponiveis}");
}
}