Menu
Coddy logo textTech

Inicializadores de Objetos

Parte da seção Programação Orientada a Objetos do Journey de C# da Coddy — lição 8 de 70.

Inicializadores de objeto fornecem uma maneira conveniente de definir valores de propriedade ao criar um objeto, sem chamar um construtor com muitos parâmetros.

Maneira tradicional usando construtor

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string City { get; set; }
}

Person person = new Person();
person.Name = "Alice";
person.Age = 25;
person.City = "New York";

Usando a sintaxe de inicializador de objeto

Person person = new Person
{
    Name = "Alice",
    Age = 25,
    City = "New York"
};

Inicializadores de objetos com construtores

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string City { get; set; }
    
    public Person(string name)
    {
        Name = name;
    }
}

// O construtor define Name, o inicializador define outras propriedades
Person person = new Person("Bob")
{
    Age = 30,
    City = "London"
};

Inicializadores de objetos aninhados

public class Address
{
    public string Street { get; set; }
    public string City { get; set; }
}

public class Person
{
    public string Name { get; set; }
    public Address Address { get; set; }
}

Person person = new Person
{
    Name = "Charlie",
    Address = new Address
    {
        Street = "123 Main St",
        City = "Boston"
    }
};

Criando múltiplos objetos com inicializadores

Person person1 = new Person { Name = "Alice", Age = 25 };
Person person2 = new Person { Name = "Bob", Age = 30 };
Person person3 = new Person { Name = "Charlie", Age = 35 };

Inicializadores de objeto tornam o código mais limpo e legível. As propriedades são definidas após a execução do construtor. Você pode usar inicializadores com ou sem parâmetros de construtor, tornando a criação de objetos flexível e concisa.

challenge icon

Desafio

Médio

Crie três objetos Student usando diferentes abordagens de inicializador de objeto:

  • student1: Use o construtor padrão com inicializador de objeto para definir todas as propriedades (Name, StudentId, Major, GPA) a partir da entrada
  • student2: Use o inicializador de objeto para definir apenas Name = "Bob" e Major = "Engineering"
  • student3: Use o construtor com "Charlie" como parâmetro, então use o inicializador de objeto para definir StudentId = 54321, Major = "Mathematics", GPA = 3.5

Folha de consulta

Inicializadores de objeto fornecem uma maneira conveniente de definir valores de propriedade ao criar um objeto:

Person person = new Person
{
    Name = "Alice",
    Age = 25,
    City = "New York"
};

Inicializadores de objeto podem ser combinados com construtores:

Person person = new Person("Bob")
{
    Age = 30,
    City = "London"
};

Inicializadores de objeto aninhados permitem definir propriedades de objetos aninhados:

Person person = new Person
{
    Name = "Charlie",
    Address = new Address
    {
        Street = "123 Main St",
        City = "Boston"
    }
};

Múltiplos objetos podem ser criados de forma concisa:

Person person1 = new Person { Name = "Alice", Age = 25 };
Person person2 = new Person { Name = "Bob", Age = 30 };

Experimente você mesmo

using System;

class Program
{
    static void Main()
    {
        string name = Console.ReadLine();
        int studentId = int.Parse(Console.ReadLine());
        string major = Console.ReadLine();
        double gpa = double.Parse(Console.ReadLine());
        
        // TODO: Criar student1 usando inicializador de objeto com todas as propriedades
        // Use o construtor padrão e defina Name, StudentId, Major e GPA
        
        // TODO: Criar student2 usando inicializador de objeto apenas com Name e Major
        // Name deve ser "Bob", Major deve ser "Engineering"
        
        // TODO: Criar student3 usando o construtor com o parâmetro de nome "Charlie"
        // Depois use o inicializador de objeto para definir StudentId = 54321, Major = "Mathematics", GPA = 3.5
        
        Console.WriteLine($"Student 1: {student1.Name} (ID: {student1.StudentId}) - {student1.Major}, GPA: {student1.GPA}");
        Console.WriteLine($"Student 2: {student2.Name} (ID: {student2.StudentId}) - {student2.Major}, GPA: {student2.GPA}");
        Console.WriteLine($"Student 3: {student3.Name} (ID: {student3.StudentId}) - {student3.Major}, GPA: {student3.GPA}");
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Programação Orientada a Objetos