Введение в конструктор в C #

Конструктор играет очень важную роль в объектно-ориентированном программировании. Давайте поймем роль конструктора в C # с помощью следующих пунктов:

  • Конструктор - это специальный метод, присутствующий внутри класса, который отвечает за инициализацию переменных класса.
  • Его имя совпадает с именем класса.
  • Он автоматически выполняется, когда мы создаем экземпляр класса.
  • Конструктор не возвращает никакого значения.
  • Если мы не определяем конструктор, неявный конструктор всегда предоставляется классом, который называется конструктором по умолчанию.

Синтаксис:

public class Student()
(
//constructor
public Student()
(
//code
)
)

Здесь public Student () - это метод, который не имеет никакого возвращаемого типа, даже void, и его имя совпадает с именем класса, т.е. «Student». Таким образом, этот метод является конструктором этого класса.

Когда мы создадим объект этого класса, используя:

Student obj = new Student();

Тогда код внутри конструктора будет выполнен.

Работа Конструктора в C #

1. Конструктор инициализирует элементы данных для нового объекта. Он вызывается оператором «new» сразу же после выделения памяти для нового объекта.

2. Явные конструкторы (конструкторы, определенные пользователем) могут быть без параметров или параметризованными. Если он параметризован, то значения, переданные в конструктор, могут быть назначены членам данных класса.

3. Неявный конструктор инициализирует переменные класса с одинаковым значением, даже если мы создаем несколько экземпляров этого класса.

Пример:

Код:

using System;
public class ConstructorDemo
(
public int num = 10;
public static void Main()
(
ConstructorDemo obj1 = new ConstructorDemo();
ConstructorDemo obj2 = new ConstructorDemo();
ConstructorDemo obj3 = new ConstructorDemo();
Console.WriteLine("obj1.num = "+obj1.num+"\nobj2.num = "+obj2.num
+"\nobj3.num = "+obj3.num);
)
)

Выход:

Наглядное представление вышеуказанной программы:

4. Явный конструктор с параметрами позволяет нам инициализировать переменные класса с другим значением каждый раз, когда мы создаем экземпляр этого класса.

Пример:

Код:

using System;
public class ConstructorDemo
(
public int num;
//explicit constructor
public ConstructorDemo(int num)
(
this.num = num;
)
public static void Main()
(
ConstructorDemo obj1 = new ConstructorDemo(10);
ConstructorDemo obj2 = new ConstructorDemo(20);
ConstructorDemo obj3 = new ConstructorDemo(30);
Console.WriteLine("obj1.num = "+obj1.num+"\nobj2.num = "+obj2.num
+"\nobj3.num = "+obj3.num);
)
)

Выход:

Наглядное представление вышеуказанной программы:

Топ 5 типов конструктора в C #

C # предоставляет пять типов конструкторов. Они заключаются в следующем:

1. Конструктор по умолчанию

  • Конструктор без каких-либо параметров называется конструктором по умолчанию. Если мы не определим это явно, то это будет неявно предоставлено компилятором.
  • В таком случае мы можем назвать это неявным конструктором. Конструктор по умолчанию или неявный инициализирует все члены данных класса с их значениями по умолчанию, такими как все числовые поля к нулю и все строковые и объектные поля к нулю.

Пример:

Код:

using System;
public class DefaultConstructor
(
public int num;
public string str;
)
public class Demo
(
public static void Main()
(
DefaultConstructor obj = new DefaultConstructor();
Console.WriteLine("obj.num = "+obj.num+"\nobj.str = "+obj.str);
)
)

Выход:

2. Параметризованный конструктор

Конструктор с хотя бы одним параметром называется Parameterized Constructor. Параметры в конструктор могут быть переданы при создании экземпляра класса. Это позволяет нам инициализировать каждый экземпляр класса различными значениями.

Пример:

Код:

using System;
public class ParameterizedConstructor
(
public int num;
public string str;
//parameterized constructor
public ParameterizedConstructor(int num, string str)
(
this.num = num;
this.str = str;
)
)
public class Demo
(
public static void Main()
(
//passing values to constructor while creating instance
ParameterizedConstructor obj = new ParameterizedConstructor(50, "constructor");
Console.WriteLine("obj.num = "+obj.num+"\nobj.str = "+obj.str);
)
)

Выход:

3. Копировать конструктор

Это параметризованный конструктор, который принимает объект того же класса, что и параметр. Он копирует значение существующего объекта (которое передается как параметр) во вновь созданный объект, созданный конструктором. Можно сказать, что он копирует данные одного объекта в другой объект.

Пример:

Код:

using System;
public class CopyConstructor
(
public int num;
public CopyConstructor(int num)
(
this.num = num;
)
//copy constructor
public CopyConstructor(CopyConstructor obj)
(
num = obj.num;
)
)
public class Demo
(
public static void Main()
(
CopyConstructor obj1 = new CopyConstructor(50);
//passing same class's object as parameter
CopyConstructor obj2 = new CopyConstructor(obj1);
Console.WriteLine("Original object:");
Console.WriteLine("obj1.num = "+obj1.num);
Console.WriteLine("\nCopied object:");
Console.WriteLine("obj2.num = "+obj2.num);
)
)

Выход:

4. Статический конструктор

  • Это можно определить, поставив перед именем конструктора ключевое слово. Он неявно определяется компилятором (если не определен явно), если класс содержит какую-либо статическую переменную.
  • Это первый блок, который будет выполнен в классе и будет вызван автоматически. Он будет выполнен только один раз, независимо от количества экземпляров класса. Это без параметров и не принимает модификатор доступа.

Пример:

Код:

using System;
public class StaticConstructor
(
//static constructor
static StaticConstructor()
(
Console.WriteLine("Static constructor executed");
)
public static void Display()
(
Console.WriteLine("\nDisplay method executed");
)
)
public class Demo
(
public static void Main()
(
StaticConstructor.Display();
)
)

Выход:

5. Частный конструктор

Конструктор, созданный с помощью частного спецификатора, называется приватным конструктором. Мы не можем создать экземпляр класса, если он содержит только закрытый конструктор и не позволяет другим классам наследовать от этого класса. Используется в классе, который содержит только статические члены.

Пример:

Код:

using System;
public class PrivateConstructor
(
public static int num = 100;
//private constructor
private PrivateConstructor()
(
)
)
public class Demo
(
public static void Main()
(
//PrivateConstructor obj = new PrivateConstructor(); //Error
Console.WriteLine("num = "+PrivateConstructor.num);
)
)

Выход:

Вывод

Если мы определим любой тип конструктора в классе, то не будет никакого неявного конструктора в классе, предоставленном компилятором. Как и методы, параметризованные конструкторы также могут быть перегружены различным количеством параметров. Конструкторы, неявно определенные компилятором, всегда общедоступны.

Рекомендуемая статья

Это руководство к конструктору в C #. Здесь мы обсуждаем типы конструктора в C # и его работу вместе с реализацией и выводом кода. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше -

  1. Конструктор в JavaScript и типах
  2. Что такое генератор случайных чисел в C #?
  3. Конструктор в C ++ и типы
  4. Конструктор копирования в C # (примеры)
  5. Статический Конструктор в Java | Рабочая | Приложения