Увод у Конструктор у Ц #

Конструктор има врло важну улогу у објектно-оријентисаном програмирању. Да разумемо улогу конструктора у Ц # уз помоћ следећих тачака:

  • Конструктор је посебна метода присутна унутар класе која је одговорна за иницијализацију варијабли класе.
  • Име је исто као и име класе.
  • Аутоматски се извршава када створимо инстанцу класе.
  • Конструктор не враћа ниједну вредност.
  • Ако не дефинирамо конструктор, имплицитни конструктор увијек даје класа која се назива задани конструктор.

Синтакса:

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

Овде је јавни Студент () метода која нема повратни тип, чак није ничији и његово име је исто као и име класе, тј. „Студент“. Стога је овај метод конструктор ове класе.

Када ћемо створити објект ове класе користећи:

Student obj = new Student();

Тада ће се извршити код унутар конструктора.

Рад Конструктора у Ц #

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 типова конструктора у Ц #

Ц # пружа пет типова конструктора. Они су следећи:

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);
)
)

Излаз:

Закључак

Ако у класи дефинирамо било коју врсту конструктора, тада неће постојати имплицитни конструктор у класи коју обезбеђује преводилац. Као и методе, параметризовани конструктори се такође могу преоптеретити различитим бројем параметара. Конструктори које имплицитно дефинише преводилац увек су јавни.

Препоручени чланак

Ово је водич за Конструктор на Ц #. Овде смо расправљали о типовима конструктора у Ц # и његовом раду заједно са имплементацијом и излазом кода. Можете и да прођете кроз друге наше предложене чланке да бисте сазнали више -

  1. Конструктор у ЈаваСцрипту и типовима
  2. Шта је генератор случајних бројева у Ц #?
  3. Конструктор у Ц ++ и типовима
  4. Копирајте конструктор у Ц # (примери)
  5. Статиц Цонструцтор на Јави | Воркинг | Апликације

Категорија: