Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Cadastro de funcionários

Uma dúvida !
Sempre quando eu for criar uma classe, eu vou no projeto, aperto com o botão direito, adicionar, classe e adiciono a classe depois altero o que tem que alterar.
A minha dúvida é a seguinte, posso usar somente uma "aba" e ir criando classes nela, adicionando herança entre elas em uma única aba ?
Se sim, acho que o projeto ficaria meio bagunçado, não ?
Se alguem consguir entender minha dúvida e poder me ajudar eu agradeço. Obrigado !

Meu Projeto : Cadastro de funcionários

Funcionario.cs

class Funcionario
{
    public string Nome { get; }
    public string Cargo {  get; }

    public Funcionario (string nome, string cargo)
    {
        this.Nome = nome;
        this.Cargo = cargo;
    }
}

Freelancer.cs

class Freelancer : Funcionario 
{
    public decimal ValorProjeto { get; }

    public Freelancer (string nome, string cargo, decimal valorProjeto) 
        : base (nome, cargo)
    {
        this.ValorProjeto = valorProjeto;
    }
}

Interno.cs

class Interno : Funcionario
{
    public decimal Salario { get; set; }

    public Interno (string nome, string cargo, decimal salario) 
        : base (nome, cargo)
    {
        this.Salario = salario;
    }
}

Program.cs

Interno f1 = new Interno("Matheus", "Desenvolvedor", 15000.00m);
Freelancer f2 = new Freelancer("Carlos", "Designer UX", 7500.00m);

Console.WriteLine($"Funcionário: {f1.Nome} - Cargo: {f1.Cargo} - Salário: {f1.Salario}");
Console.WriteLine($"Freelancer: {f2.Nome} - Cargo: {f2.Cargo} - Projeto atual: {f2.ValorProjeto}");
2 respostas
solução!

Oi, Matheus! Que bacana ver você praticando os conceitos de Orientação a Objetos. Seu código tá muito bem estruturado e segue exatamente o que foi proposto no desafio.

Posso criar várias classes em um único arquivo?

Sim, tecnicamente você pode. O C# permite que você declare múltiplas classes dentro de um mesmo arquivo .cs.

Por que isso é evitado?

Você mesmo já antecipou a resposta: organização. Imagine um sistema real com 200 classes. Se todas estivessem no mesmo arquivo, encontrar um erro ou alterar uma lógica seria uma tarefa exaustiva.

  • Manutenibilidade: É muito mais fácil localizar a classe Freelancer se houver um arquivo chamado Freelancer.cs.
  • Trabalho em equipe: Se você e um colega precisarem mexer em classes diferentes ao mesmo tempo, ter arquivos separados evita conflitos na hora de salvar as alterações no controle de versão (como o Git).
  • Navegação do IDE: O Visual Studio e outras ferramentas funcionam melhor para sugerir nomes e atalhos quando a estrutura segue o padrão de diretórios.

Quando usar um único arquivo?

Existem exceções raras, como:

  • Classes muito pequenas que servem apenas como auxiliares imediatas de outra classe principal.
  • Exemplos rápidos de estudos ou testes simples.
  • Uso de Records ou Enums pequenos que estão intimamente ligados ao contexto daquela aba.

Dica de ouro:

Mantenha o hábito que você já tem: clicar com o botão direito e adicionar uma nova classe. Isso ajuda a manter seu projeto limpo e profissional desde o início. Conforme seus sistemas crescerem, você passará a criar até pastas para separar essas classes por categorias (ex: uma pasta "Modelos", outra "Serviços").

Seu projeto de cadastro ficou excelente. O uso do base(nome, cargo) no construtor mostra que você compreendeu bem como a herança funciona na prática.

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

Oi Lorena, muito obrigado pela explicação.
As dúvidas que eu tinha, agora não tenho mais. Obrigado !