Menu
Coddy logo textTech

Construtores

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

Um construtor é um método especial que é executado quando você cria um objeto. Ele inicializa as propriedades e campos do objeto.

Construtor padrão sem parâmetros

public class Book
{
    public string Title { get; set; }
    public string Author { get; set; }
    
    // Default constructor
    public Book()
    {
        Title = "Unknown";
        Author = "Unknown";
    }
}

Construtor parametrizado

public class Book
{
    public string Title { get; set; }
    public string Author { get; set; }
    
    // Construtor com parâmetros
    public Book(string title, string author)
    {
        Title = title;
        Author = author;
    }
}

Sobrecarga de construtores - múltiplos construtores

public class Book
{
    public string Title { get; set; }
    public string Author { get; set; }
    public int Pages { get; set; }
    
    // Construtor com dois parâmetros
    public Book(string title, string author)
    {
        Title = title;
        Author = author;
        Pages = 0;
    }
    
    // Construtor com três parâmetros
    public Book(string title, string author, int pages)
    {
        Title = title;
        Author = author;
        Pages = pages;
    }
}

Encadeamento de construtores com this

public class Book
{
    public string Title { get; set; }
    public string Author { get; set; }
    public int Pages { get; set; }
    
    // Construtor principal
    public Book(string title, string author, int pages)
    {
        Title = title;
        Author = author;
        Pages = pages;
    }
    
    // Chama o construtor principal com páginas padrão
    public Book(string title, string author) : this(title, author, 0)
    {
    }
}

Criando objetos com diferentes construtores

Book book1 = new Book("1984", "George Orwell");
Book book2 = new Book("Harry Potter", "J.K. Rowling", 500);

Construtores têm o mesmo nome que a classe e nenhum tipo de retorno. Eles são executados automaticamente quando você usa a palavra-chave new. Você pode ter múltiplos construtores com parâmetros diferentes (sobrecarga).

challenge icon

Desafio

Médio

Crie três construtores para a classe Product usando sobrecarga e encadeamento de construtores:

  • Um construtor com 3 parâmetros: name, price e stock
  • Um construtor com 2 parâmetros: name e price (stock padrão é 0)
  • Um construtor padrão sem parâmetros (name = "Unknown", price = 0, stock = 0)

Use encadeamento de construtores com this para evitar a duplicação de código.

Folha de consulta

Um construtor é um método especial que é executado quando você cria um objeto. Ele inicializa as propriedades do objeto.

Os construtores têm o mesmo nome da classe e não possuem tipo de retorno. Eles são executados automaticamente quando você usa a palavra-chave new.

Construtor padrão sem parâmetros:

public class Book
{
    public string Title { get; set; }
    
    public Book()
    {
        Title = "Unknown";
    }
}

Construtor parametrizado:

public class Book
{
    public string Title { get; set; }
    public string Author { get; set; }
    
    public Book(string title, string author)
    {
        Title = title;
        Author = author;
    }
}

Sobrecarga de construtor - múltiplos construtores com parâmetros diferentes:

public class Book
{
    public string Title { get; set; }
    public int Pages { get; set; }
    
    public Book(string title)
    {
        Title = title;
        Pages = 0;
    }
    
    public Book(string title, int pages)
    {
        Title = title;
        Pages = pages;
    }
}

Encadeamento de construtores com this para evitar duplicação de código:

public class Book
{
    public string Title { get; set; }
    public int Pages { get; set; }
    
    public Book(string title, int pages)
    {
        Title = title;
        Pages = pages;
    }
    
    public Book(string title) : this(title, 0)
    {
    }
}

Criando objetos com diferentes construtores:

Book book1 = new Book("1984", "George Orwell");
Book book2 = new Book("Harry Potter", "J.K. Rowling", 500);

Experimente você mesmo

using System;

class Program
{
    static void Main()
    {
        string name = Console.ReadLine();
        decimal price = decimal.Parse(Console.ReadLine());
        int stock = int.Parse(Console.ReadLine());
        
        Product product1 = new Product(name, price, stock);
        Product product2 = new Product();
        Product product3 = new Product("Keyboard", 79.99m);
        
        Console.WriteLine($"Product 1: {product1.Name} - ${product1.Price} (Stock: {product1.Stock})");
        Console.WriteLine($"Product 2: {product2.Name} - ${product2.Price} (Stock: {product2.Stock})");
        Console.WriteLine($"Product 3: {product3.Name} - ${product3.Price} (Stock: {product3.Stock})");
    }
}
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