1
resposta

Desafio: Construtores

  • **Classe Titular: ***
class Titular
{
    public Titular(string nome, string cpf, string endereco)
    {
        Nome = nome;
        Cpf = cpf;
        Endereco = endereco;
    }

    public string Nome { get; }
    public string Cpf { get;}
    public string Endereco { get; }

    
}
  • Classe Conta:
class Conta
{
    private decimal _saldo;
    private decimal _limite;

    public Conta(string numeroConta, string agencia, decimal saldo, decimal limite, Titular? titularConta)
    {
        NumeroConta = numeroConta;
        Agencia = agencia;
        _saldo = saldo;
        _limite = limite;
        TitularConta = titularConta;
    }

    public string NumeroConta {  get;}
    public string Agencia { get; }
    public decimal Saldo { get=> _saldo; }
    public decimal Limite { get => _limite; }
    public Titular? TitularConta {  get;}

    public string Informacoes => $"Conta: Nº {this.NumeroConta}, Agência: {this.Agencia}, Titular: {this.TitularConta.Nome}, Saldo da conta: {this.Saldo}";
    public void ExibirInformacoes()
    {
        Console.WriteLine($"Número da conta: {NumeroConta}");
        if (TitularConta != null)
        {
            Console.WriteLine($"Titular da Conta: {TitularConta.Nome}");
        }
        Console.WriteLine($"Agência do Cliente: {Agencia}");
        Console.WriteLine($"Saldo da conta: R${_saldo}");
        Console.WriteLine($"Limite da conta: R${_limite}");

        Console.WriteLine(Informacoes);
    }

    public void AlterarSaldo(decimal saldo)
    {
        _saldo = saldo;
    }
    public void DefinirLimite(decimal limite)
    {
        _limite = limite;
    }
}
  • Catalogo de Jogos:
class Jogo{
    public string Nome;

    public Jogo(string nome)
    {
        Nome = nome;
    }
}
class CatalogoJogos
{
    public  List<Jogo> Jogos;

    public CatalogoJogos()
    {
       Jogos = new List<Jogo>();
    }

    public void AdicionarJogo(Jogo jogo)
    {
        Jogos.Add(jogo);
    }

    public void ListarJogos()
    {
        foreach(var jogo in Jogos)
        {
            Console.WriteLine(jogo.Nome);
        }
    }
}
1 resposta

Oi, Paulo! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Ficou ótima a forma como você aplicou construtores para garantir que os objetos já nasçam com estado definido, principalmente na relação entre Conta e Titular, além do cuidado em separar responsabilidades nas classes do catálogo de jogos.

Uma dica interessante para o futuro é usar construtor com sobrecarga para facilitar diferentes formas de criar um objeto. Veja este exemplo:


class Jogo
{
    public string Nome;

    public Jogo()
    {
        Nome = "Jogo padrao";
    }

    public Jogo(string nome)
    {
        Nome = nome;
    }
}

Esse código permite criar um jogo com nome definido ou usar um valor padrão quando nenhum nome for informado.

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