Constructors

Constructors are special methods that are invoked when an object of a class is created. Constructors are used to initialize objects and set the initial state of the class’s fields or properties. A constructor has the same name as the class and does not have a return type.

Types of Constructors

  1. Default Constructor: A constructor with no parameters. If no constructors are defined in a class, C# provides a default constructor automatically.
  2. Parameterized Constructor: A constructor that takes parameters, allowing you to pass values at the time of object creation.
  3. Static Constructor: A special constructor used to initialize static members of the class. It is called automatically before the first instance is created or any static members are accessed.

Example: Parameterized Constructor

using System;

class Book
{
  // Fields
  private string title;
  private string author;
  private int year;

    // Parameterized Constructor
  public Book(string title, string author, int year)
  {
      this.title = title;
      this.author = author;
      this.year = year;
  }

 
// Properties
  public string Title
  {
      get { return title; }
      set { title = value; }
  }
  public string Author
  {
      get { return author; }
      set { author = value; }
  }
  public int Year
  {
      get { return year; }
      set { year = value; }
  }

    // Method to display book details
  public void DisplayDetails()
  {
      Console.WriteLine($"Title: {title}, Author: {author}, Year: {year}");
  }
}

class Program
{
  static void Main()
  {
      // Creating an object of the Book class using the parameterized constructor
      Book myBook = new Book("1985", "George Orwell", 1950);

        // Accessing properties
      Console.WriteLine($"Title: {myBook.Title}");
      Console.WriteLine($"Author: {myBook.Author}");
      Console.WriteLine($"Year: {myBook.Year}");

        // Modifying properties
      myBook.Year = 1951;

        // Calling a method
      myBook.DisplayDetails();
  }
}

Explanation of the Example

  1. Class Definition:
    • We define a Book class with three private fields: title, author, and year.
  2. Parameterized Constructor:
    • The Book class has a parameterized constructor that takes three parameters: title, author, and year. This constructor initializes the fields with the values passed to it.
  3. Properties:
    • Properties Title, Author, and Year provide access to the private fields, allowing us to get and set their values.
  4. Method:
    • The DisplayDetails method prints the book’s details to the console.
  5. Main Method:
    • We create an object myBook of the Book class using the parameterized constructor and initialize it with specific values.
    • We access and print the properties of myBook.
    • We modify the Year property of myBook.
    • We call the DisplayDetails method to display the book’s updated details.

Core Ideas

  • Initialization: Constructors are responsible for initializing objects by assigning initial values to fields or properties. This ensures that the object is in a valid state upon creation.
  • Overloading Constructors: C# allows for constructor overloading, which means you can define multiple constructors with different parameters within the same class. This offers flexibility in creating objects with various initializations.
  • Access Modifiers: Constructors can implement different access modifiers—such as public, private, or protected—which control their visibility and determine how objects can be instantiated.
Post a comment

Leave a Comment

Scroll to Top