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

[Dúvida] POO Aula 2 : Hora da pratica

Exercicio 1-

 public int NumeroConta { get; set; }
 public string NomeTitular { get; set; }
 public decimal Saldo { get; set; }
 public string Senha { get; set; }

Exercicio 2-

  public string Modelo { get; set; }
  public string Cor { get; set; }
  public string Marca { get; set; }
  public int Ano { get; set; }

  public string DescricaoDetalhada =>
      $"O carro {Modelo} foi fabricado no ano de {Ano} pela {Marca}";

Exercicio 3-

public int Ano
{
    get { return anoValidado; }
    set
    {
        if (value>= 1960 && value <= 2023)
        {
            anoValidado = value;
        }
        else
        {
            Console.WriteLine("Insira um ano válido!");
        }
    }
}

Exercicio 4-

class ContaBancaria
{
    public int NumeroConta { get; set; }
    public string NomeTitular { get; set; }
    public decimal Saldo { get; set; }
    public string Senha { get; set; }

    public void ExibirSaldo()
    {
        Console.WriteLine($"o titular {NomeTitular} possui o saldo disponível de R${Saldo}");
    }
    public void ExibirDados()
    {
        Console.WriteLine($"Conta:{NumeroConta}");
        Console.WriteLine($"Titular:{NomeTitular}");
        Console.WriteLine($"Saldo:{Saldo}");
        Console.WriteLine($"Senha:{Senha}");
    }
}

Produto calcas = new Produto();
calcas.Nome = "Jeans";
calcas.Marca = "Biotipo";
calcas.Preco= 75.99m;
calcas.Estoque = 35;
calcas.ExibirInformacoes();

Só consegui adicionar está condicional no preco e estoque, mas fiz o teste e está sendo possível por valor negativo.

1 resposta

Boa tarde, Emili! Tranquilo?

Gostei demais da sua solução, continue assim!

Mandou muito bem explorando o get/set para definir propriedades em C#, aplicou de maneira eficiente a validação de valores para restringir o ano e entendeu como usar o Console.WriteLine para dar feedback ao usuário.

E um detalhe curioso para aprimorar seria adicionar validações também para o preço e o estoque, evitando valores negativos. Exemplo:

private decimal preco;
public decimal Preco
{
    get { return preco; }
    set
    {
        if (value >= 0)
        {
            preco = value;
        }
        else
        {
            Console.WriteLine("O preço não pode ser negativo!");
        }
    }
}

private int estoque;
public int Estoque
{
    get { return estoque; }
    set
    {
        if (value >= 0)
        {
            estoque = value;
        }
        else
        {
            Console.WriteLine("O estoque não pode ser negativo!");
        }
    }
}

Isso faz com que o programa seja mais robusto e mantenha a integridade dos dados.

Para aprimorar suas soluções, algumas boas práticas são:

  • Validação: aplicar regras de negócio diretamente nas propriedades.
  • Legibilidade: manter mensagens claras e consistentes para o usuário.
  • Encapsulamento: usar campos privados com propriedades públicas para maior controle.

Continue postando as suas soluções! Além de ganhar pontos de XP na plataforma, você pode ajudar outros estudantes no fórum.

Alguns materiais podem estar em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Ah, uma pergunta: o que você gostaria de praticar mais agora, reforçar validações em todas as propriedades ou explorar herança para criar classes mais reutilizáveis?

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!