Вступ до конструктора в C #

Конструктор відіграє дуже важливу роль в об'єктно-орієнтованому програмуванні. Давайте розберемося в ролі конструктора в C # за допомогою наступних пунктів:

  • Конструктор - це спеціальний метод, присутній всередині класу, який відповідає за ініціалізацію змінних класу.
  • Її назва така ж, як і назва класу.
  • Він автоматично виконується, коли ми створюємо екземпляр класу.
  • Конструктор не повертає жодного значення.
  • Якщо ми не визначимо конструктор, неявний конструктор завжди надається класом, який називається конструктором за замовчуванням.

Синтаксис:

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

Тут public Student () - це метод, який не має жодного типу повернення, навіть недійсного, і його ім'я таке ж, як і назва класу, тобто "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. Параметризований конструктор

Конструктор, що має принаймні один параметр, називається Параметризованим конструктором. Параметри конструктору можуть передаватися під час створення екземпляра класу. Це дозволяє нам ініціалізувати кожен екземпляр класу з різними значеннями.

Приклад:

Код:

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 | Робоча | Програми