1
resposta

[Projeto] Desafio Funcionario

Program.cs

using Empresa;

Gerente carlos = new("Carlos", 35, 9500.00, "Responsavel pelo setor de T.I");
Programador samuel = new("Samuel", 22, 4600.00, "Projeto Automação de cadastros");
Analista roberto = new("Roberto", 26, 3800.00, "Especialista em Banco Oracle");

Console.WriteLine(carlos.ExibirInformacoes());
Console.WriteLine(samuel.ExibirInformacoes());
Console.WriteLine(roberto.ExibirInformacoes());

Funcionario.cs

namespace Empresa;

internal class Funcionario
{
    public Funcionario(string nome, int idade, double salario)
    {
        Nome = nome;
        Idade = idade;
        Salario = salario;
    }

    public string Nome { get; }
    public int Idade { get; }
    public double Salario { get; set; }


    public virtual string ExibirInformacoes()
    {
        return $"Nome: {this.Nome}\n" +
            $" Idade: {this.Idade}\n" +
            $"Salario: {this.Salario}\n";
    }
}

Gerente.cs

namespace Empresa;

class Gerente : Funcionario
{
    public Gerente(string nome, int idade, double salario, string atividade) : base(nome, idade, salario)
    {
        Atividade = atividade;
    }

    public string Atividade { get; }

    public override string ExibirInformacoes()
    {
        return $"{base.ExibirInformacoes()} Atividade: {this.Atividade}\n";
    }
}

Programador.cs

namespace Empresa;

class Programador : Funcionario
{
    public Programador(string nome, int idade, double salario, string projeto) : base(nome, idade, salario)
    {
        Projeto = projeto;
    }

    public string Projeto { get; }

    public override string ExibirInformacoes()
    {
        return $"{base.ExibirInformacoes()} Projeto Desenvolvido: {this.Projeto}\n";
    }
}

Analista.cs

namespace Empresa;

internal class Analista : Funcionario
{
    public Analista(string nome, int idade, double salario, string especialidade) : base(nome, idade, salario)
    {
        Especialidade = especialidade;
    }

    public string Especialidade { get; }

    public override string ExibirInformacoes()
    {
        return $"{base.ExibirInformacoes()} Especialidade: {this.Especialidade}\n";
    }

}
1 resposta

Olá, Samuel. Tudo bem?

Muito obrigado por compartilhar o seu código aqui com a gente. Parabéns pelo trabalho. Continue com essa dedicação.

Ótimo como você utilizou a herança e o polimorfismo para implementar diferentes tipos de funcionários com comportamentos distintos. Isso mostra que você entendeu bem o conceito de orientação a objetos.

Uma curiosidade que pode ser útil é o uso do método ToString() para simplificar a exibição de informações de um objeto. O método pode ser sobrescrito nas suas classes, oferecendo uma forma mais direta de exibir os dados do objeto. Veja como ficaria:


public override string ToString()
{
    return $"Nome: {this.Nome}, Idade: {this.Idade}, Salário: {this.Salario}";
}

O código acima sobrescreve o método ToString() para a classe Funcionario, oferecendo uma maneira prática de exibir os dados de um funcionário sem precisar chamar explicitamente o método ExibirInformacoes().

Conte com o apoio do Fórum. Abraços e bons estudos.