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

Конструкторът играе много важна роля в обектно-ориентираното програмиране. Нека разберем ролята на конструктора в C # с помощта на следните точки:

  • Конструктор е специален метод, присъстващ в клас, който е отговорен за инициализиране на променливите на класа.
  • Името му е същото като името на класа.
  • Той се изпълнява автоматично, когато създадем екземпляр от класа.
  • Конструктор не връща никаква стойност.
  • Ако не дефинираме конструктор, имплицитният конструктор винаги се предоставя от класа, който се нарича конструктор по подразбиране.

Синтаксис:

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

Тук public Student () е метод, който няма никакъв тип връщане, дори не е невалиден и името му е същото като името на класа, т.е. 'Student'. По този начин този метод е конструкторът на този клас.

Кога ще създадем обект от този клас, използвайки:

Student obj = new Student();

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

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

1. Конструкторът инициализира членовете на данните за новия обект. Той се извиква от „новия“ оператор веднага след получаване на памет за новия обект.

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. Параметризиран конструктор

Конструктор с поне един параметър се нарича Параметризиран конструктор. Параметрите към конструктора могат да се предават, докато се създава инстанцията на класа. Позволява ни да инициализираме всеки екземпляр от клас с различни стойности.

Пример:

Код:

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 #. Тук обсъждаме видовете Constructor в C # и неговата работа заедно с внедряването на кода и изхода. Можете да разгледате и другите ни предложени статии, за да научите повече -

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