1
resposta

[Projeto] Conta Bancária e Carro

Conta Bancária

Conta.cs

Nessa classe, exibir as informações é um método privado, acessível apenas através do método AcessarConta(), que solicita ao usuário digitar o número da conta e senha corretamente para exibição das informações.

public class Conta
{
    public int numeroConta;
    public string titular;
    public double saldo;
    public string senha;

    private void ExibirInformacoesConta()
    {
        Console.WriteLine($"\nConta: {numeroConta}");
        Console.WriteLine($"Titular: {titular}");
        Console.WriteLine($"Saldo: R$ {string.Format("{0:0.00}", saldo)}");
    }
    
    public void AcessarConta()
    {
        Console.Write("Conta: ");
        int inputConta = int.Parse(Console.ReadLine()!);

        Console.Write("Senha: ");
        string inputSenha = Console.ReadLine()!;

        if (numeroConta == inputConta && senha == inputSenha)
        {
            ExibirInformacoesConta();
        }
        else
        {
            Console.WriteLine("Numero da conta ou senha incorretos. Tente novamente.");
        }
    }
}

Program.cs

Conta conta = new Conta();

conta.numeroConta = 400042;
conta.titular = "Rafael";
conta.saldo = 1732.96;
conta.senha = "Pwd123@";

conta.AcessarConta();

Carro

Carro.cs

Nesta classe, defini uma velocidade máxima na construção do objeto para poder brincar com os métodos de aceleração e freio.

public class Carro
{
    public string marca;
    public string modelo;
    public int ano;
    public string cor;
    public string placa;
    public int velocidadeMaxima;
    public int velocidade = 0;

    public void ExibirInformacoes()
    {
        Console.WriteLine($"\nMarca: {marca}");
        Console.WriteLine($"Modelo: {modelo}");
        Console.WriteLine($"Ano: {ano}");
        Console.WriteLine($"Cor: {cor}");
        Console.WriteLine($"Placa: {placa}");
        Console.WriteLine($"Velocidade Máxima: {velocidadeMaxima}");
    }

    public int Acelerar(int velocidadeAtual, int aceleracao)
    {
        velocidadeAtual += aceleracao;
        velocidadeAtual = velocidadeAtual > velocidadeMaxima ? velocidadeMaxima : velocidadeAtual;
        
        Console.WriteLine($"\nVelocidade: {velocidadeAtual}/{velocidadeMaxima}");

        return velocidadeAtual;
    }

    public int Frear(int velocidadeAtual, int freio)
    {
        velocidadeAtual -= freio;
        velocidadeAtual = velocidadeAtual < 0 ? 0 : velocidadeAtual;
        
        Console.WriteLine($"\nVelocidade nova: {velocidadeAtual}/{velocidadeMaxima}");
        
        return velocidadeAtual;
    }

    public void Buzinar()
    {
        Console.WriteLine("\nBi-bi!");
    }
}

Program.cs

Carro carro = new Carro();

carro.marca = "Volkswagen";
carro.modelo = "Fusca";
carro.ano = 1942;
carro.cor = "Azul";
carro.placa = "VWF-1942";
carro.velocidadeMaxima = 120;

carro.ExibirInformacoes();

carro.Buzinar();

carro.velocidade = carro.Acelerar(carro.velocidade, 50);
carro.velocidade = carro.Acelerar(carro.velocidade, 50);
carro.velocidade = carro.Acelerar(carro.velocidade, 50);

carro.Buzinar();

carro.velocidade = carro.Frear(carro.velocidade, 50);
carro.velocidade = carro.Frear(carro.velocidade, 50);
carro.velocidade = carro.Frear(carro.velocidade, 50);
1 resposta

Olá, Rafael Tudo bem?

Você está fazendo um ótimo trabalho aplicando os conceitos de orientação a objetos em C#! Para melhorar ainda mais, deixo algumas sugestões:

  1. Encapsulamento: você pode usar propriedades com get e set para os atributos das classes Conta e Carro. Isso ajuda a proteger os dados e facilita a manutenção do código. Por exemplo:

    public int NumeroConta { get; set; }
    public string Titular { get; set; }
    public double Saldo { get; private set; }
    public string Senha { private get; set; }
    

    Isso permite que você controle melhor como os atributos são acessados e modificados.

  2. Separação de Responsabilidades: você pode separar a lógica de interação com o usuário (como Console.ReadLine()) da lógica da classe. Isso tornará suas classes mais flexíveis e fáceis de testar.

Também é sempre bacana visualizar o gabarito da atividade para entender como a pessoa instrutora realizou essa solução.

Espero que essas sugestões ajudem a refinar ainda mais o seu projeto. Continue praticando, pois é assim que se solidificam os conhecimentos em programação. Você está de parabéns e no caminho certo!

Um abraço e bons estudos!