1
resposta

[Projeto] Desafio: Hora da prática

Resolução da 1:

//1. Reescrever a classe Conta, criada no ultimo desafio, utilizando properties.

class ContaBancaria
{
    public int? NumIndicador { get; set; }
    public string? Titular { get; set; }
    public double? Saldo { get; set; }
    public string? Senha { get; set; }
}

Resolução da 2 e 3:

//2. Reescrever os atributos da classe Carro, de modo que eles sejam properties,
//e adicionar uma nova propertie DescricaoDetalhada, que mostra o fabricante,
//modelo e ano do carro.


class carro
{
    private int ano;
    public string Fabricante { get; set; }
    public string Modelo { get; set; }
    
    //3.Reescrever a propriedade Ano da classe carro, para que ela apenas aceite
    //valores entre 1960 e 2023.
    
    public int Ano
    {
        get => ano;
        set
        {
            if (value >= 1960 && value <= 2023)
            {
                ano = value;
            }
            else
            {
                Console.WriteLine("Valor inválido, insira um ano entre 1960 e 2023");
            }
        }
    }
    public int QuantidadePortas { get; set; }
    public int Velocidade { get; set; }
    public string DescricaoDetalhada =>
        $"A fabricante é: {Fabricante}, \nO modelo é:{Modelo} \nE o carro é do ano: {Ano}";
}

Resolução da 4:

//4. Desenvolver a classe Produto, com os atributos nome, marca, preco e estoque.
//Além disso, garantir que o preço e o estoque do produto sejam valores positivos
//e criar uma propriedade que mostra detalhadamente as informações do produto,
//para que seja usado pela equipe de vendas.





class Produto
{
    public string? nome;
    public string? marca;
    public double preco;
    public int estoque;
    public double Preco
    {
        get => preco; 
        set
        {
            if (value > 0)
            {
                preco = value;
            }
            else
            {
                preco = 100;
            }
        }
    }
    public int Estoque
    {
        get => estoque;
        set
        {
            if (value > 0)
                estoque = value;
            else
                estoque = 0;
                
        }
    }
    public object DetalhesProduto => $"{this.nome} {this.marca} - {this.Preco}";


        public void ExibirDetalhes()
        {
            Console.WriteLine($"Nome: {nome}");
            Console.WriteLine($"Marca: {marca}");
            Console.WriteLine($"Preço: R${Preco}");
            Console.WriteLine($"Quantidade em Estoque: {Estoque}");
        }
    }

Program.cs da 4:

var camisa = new Produto();
camisa.nome = "Camisa";
camisa.marca = "Supreme";
camisa.Preco = 250;
camisa.Estoque = 77;

Console.Clear();
camisa.ExibirDetalhes();
1 resposta

Oi, Christopher! Como vai?

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

Gostei de como você aplicou properties nas classes e validou o Ano com get e set, isso mostra um bom entendimento de encapsulamento. Na classe Produto, foi interessante ver a validação de valores positivos para Preco e Estoque, isso evita inconsistências e já aproxima o código de um cenário real.

Uma dica interessante para o futuro é usar private set quando quiser proteger a alteração direta de uma propriedade. Veja este exemplo:


class Produto
{
    public string Nome { get; private set; }

    public Produto(string nome)
    {
        Nome = nome;
    }
}
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!