Métodos Construtores na Linguagem C# para Inicialização de Objetos

Na programação orientada a objetos em C#, os métodos construtores são fundamentais para inicializar objetos durante sua criação. Quando um objeto é instanciado usando a palavra-chave new, o construtor correspondente é invocado automaticamente, garantindo que os campos do objeto sejam configurados adequadamente. Se essa inicialização for negligenciada, o estado do objeto pode ficar inconsistente, afetando a execução subsequente.

Os métodos construtores em C# possuem características distintas que os diferenciam dos métodos comuns:

  • O nome do construtor deve corresponder exatamente ao nome da classe que o define, sem tipo de retorno explícito (nem mesmo void).
  • Construtores são chamados pelo sistema durante a instanciação do objeto e não podem ser invocados manualmente.
  • Sua principal função é atribuir valores iniciais aos membros do objeto.

Por padrão, o compilador C# fornece um construtor sem parâmetros para a classe. No entanto, ao definir explicitamente um ou mais construtores, esse construtor padrão deixa de ser fornecido. Construtores podem ser sobrecargados, pemritindo diferentes formas de inicialização com base nos parâmetros passados.

A seguir, um exemplo demonstra o uso de construtores em C#. A classe Pessoa define múltiplos construtores para inicializar seus campos de maneiras variadas.

using System;

namespace ExemploConstrutor { public class Pessoa { private string nome; private int idade; private string residencia;

    // Construtor sem parâmetros
    public Pessoa() { }

    // Construtor com dois parâmetros
    public Pessoa(string nomeCompleto, int anos)
    {
        Nome = nomeCompleto;
        Idade = anos;
        Residencia = "Não especificada";
    }

    // Construtor com três parâmetros
    public Pessoa(string nomeCompleto, int anos, string endereco)
    {
        Nome = nomeCompleto;
        Idade = anos;
        Residencia = endereco;
    }

    // Propriedade para Nome
    public string Nome
    {
        get { return nome; }
        set { nome = value; }
    }

    // Propriedade para Idade com validação
    public int Idade
    {
        get { return idade; }
        set
        {
            if (value >= 0 && value <= 120)
                idade = value;
            else
            {
                Console.WriteLine("Idade fora do intervalo válido, definida como 25.");
                idade = 25;
            }
        }
    }

    // Propriedade para Residência
    public string Residencia
    {
        get { return residencia; }
        set { residencia = value; }
    }
}

}


</div>No prograam principal, diferentes instâncias de `Pessoa` são criadas utilizando os construtores disponíveis.

<div class="code-example">```

using System;

namespace ExemploConstrutor
{
    class ProgramaPrincipal
    {
        static void Main(string[] args)
        {
            // Instanciando com construtor de três parâmetros
            Pessoa individuo1 = new Pessoa("Maria Silva", 30, "São Paulo, Brasil");
            
            // Instanciando com construtor de dois parâmetros
            Pessoa individuo2 = new Pessoa("João Oliveira", 40);
            
            // Instanciando com construtor sem parâmetros
            Pessoa individuo3 = new Pessoa();
            individuo3.Nome = "Ana Santos";
            individuo3.Idade = 22;
            individuo3.Residencia = "Rio de Janeiro, Brasil";

            Console.WriteLine("Dados do indivíduo 1:");
            Console.WriteLine($"Nome: {individuo1.Nome}");
            Console.WriteLine($"Idade: {individuo1.Idade}");
            Console.WriteLine($"Residência: {individuo1.Residencia}");

            Console.WriteLine("\nDados do indivíduo 2:");
            Console.WriteLine($"Nome: {individuo2.Nome}");
            Console.WriteLine($"Idade: {individuo2.Idade}");
            Console.WriteLine($"Residência: {individuo2.Residencia}");

            Console.WriteLine("\nDados do indivíduo 3:");
            Console.WriteLine($"Nome: {individuo3.Nome}");
            Console.WriteLine($"Idade: {individuo3.Idade}");
            Console.WriteLine($"Residência: {individuo3.Residencia}");
        }
    }
}

Tags: C# métodos construtores Orientação a Objetos inicialização de objetos sobrecarga de métodos

Publicado em 6-28 01:58