🎯 Objetivo: Aprender a usar construtores e entender a palavra-chave this para inicializar objetos de forma eficiente e segura.
Cada objeto é uma instância de uma classe. Ao serem criados, possuem uma identificação única que é atribuída pelo ambiente, além de conter todos os atributos e métodos definidos em sua classe.
Declarando a variável de referência
Funcionario f2;
A variável f2 é declarada do tipo Funcionario (etapa 1).
Alocando Memória
f2 = new Funcionario();
Aloca área de memória para o novo objeto e atribui a f2 o endereço dessa área.
Declarando a variável e alocando memória ao mesmo tempo
Funcionario f2 = new Funcionario();
0 para os tipos numéricos (int, float, double…), e null, para o tipo String.
Um construtor é um método especial que é executado automaticamente no momento em que um objeto é criado (ou seja, quando você usa a palavra-chave new). O principal objetivo de um construtor é garantir que o objeto seja inicializado em um estado válido.
Características de um Construtor em C#:
void).Se você não definir nenhum construtor na sua classe, o C# criará um construtor padrão (também chamado de "construtor sem parâmetros") por trás dos panos. Se você criar um construtor com parâmetros, o C# não criará o construtor padrão, e você precisará criá-lo explicitamente se quiser usá-lo.
Vamos usar a classe Aluno e adicionar um construtor para inicializar o nome e a idade no momento da criação.
public class Aluno
{
public string nome;
public int idade;
// Construtor sem parâmetros (Construtor padrão)
// Se você não criar outro, este é gerado automaticamente
public Aluno()
{
}
// Construtor com parâmetros
public Aluno(string nome, int idade)
{
this.nome = nome;
this.idade = idade;
}
public void Apresentar()
{
Console.WriteLine($"Olá! Meu nome é {nome} e tenho {idade} anos.");
}
}
thisA palavra-chave this é uma referência ao objeto atual. Ela é usada principalmente para diferenciar os atributos da classe dos parâmetros de um método ou construtor, especialmente quando eles têm o mesmo nome.
No exemplo do construtor acima:
this.nome se refere ao atributo nome da classe.nome se refere ao parâmetro nome que foi passado para o construtor.