Inleiding tot Constructor in C #

Constructor speelt een zeer belangrijke rol in Object-Oriented Programming. Laten we de rol van constructor in C # begrijpen met behulp van de volgende punten:

  • Een constructor is een speciale methode in een klasse die verantwoordelijk is voor het initialiseren van de variabelen van de klasse.
  • De naam is hetzelfde als de klassennaam.
  • Het wordt automatisch uitgevoerd wanneer we een instantie van de klasse maken.
  • Een constructor retourneert geen waarde.
  • Als we geen constructor definiëren, wordt altijd een impliciete constructor geleverd door de klasse die de standaardconstructor wordt genoemd.

Syntaxis:

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

Hier is public Student () een methode die geen retourneringstype heeft, zelfs niet ongeldig en de naam is hetzelfde als de klassennaam oftewel 'Student'. Deze methode is dus de constructor van deze klasse.

Wanneer we een object van deze klasse maken met:

Student obj = new Student();

Vervolgens wordt de code in de constructor uitgevoerd.

Werken van Constructor in C #

1. De constructor initialiseert gegevensleden voor het nieuwe object. Het wordt aangeroepen door de 'nieuwe' operator onmiddellijk nadat het geheugen aan het nieuwe object is toegewezen.

2. Expliciete constructors (constructors gedefinieerd door de gebruiker) kunnen parameterloos of geparametriseerd zijn. Als het is geparametreerd, kunnen de waarden die aan de constructor zijn doorgegeven, worden toegewezen aan de gegevensleden van de klasse.

3. De impliciete constructor initialiseert variabelen van de klasse met dezelfde waarde, zelfs als we meerdere instanties van die klasse maken.

Voorbeeld:

Code:

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

Output:

Geïllustreerde weergave van bovenstaande programma:

4. Expliciete constructor met parameters stelt ons in staat om variabelen van de klasse met een andere waarde te initialiseren telkens wanneer we een instantie van die klasse maken.

Voorbeeld:

Code:

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

Output:

Geïllustreerde weergave van bovenstaande programma:

Top 5 soorten constructor in C #

C # biedt vijf soorten constructeurs. Ze zijn als volgt:

1. Standaardconstructor

  • Een constructor zonder enige parameter wordt Standaardconstructor genoemd. Als we het niet expliciet definiëren, wordt het impliciet door de compiler geleverd.
  • In een dergelijk geval kunnen we het impliciete constructor noemen. Standaard of impliciete constructor initialiseert alle gegevensleden van de klasse met hun standaardwaarden zoals alle numerieke velden op nul en alle tekenreeks- en objectvelden op nul.

Voorbeeld:

Code:

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

Output:

2. Geparametriseerde constructor

Constructor met ten minste één parameter wordt Parameterized Constructor genoemd. Parameters kunnen aan de constructor worden doorgegeven terwijl de instantie van de klasse wordt gemaakt. Hiermee kunnen we elke instantie van een klasse met verschillende waarden initialiseren.

Voorbeeld:

Code:

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

Output:

3. Kopieer Constructor

Het is een geparametriseerde constructor die het object van dezelfde klasse neemt als een parameter. Het kopieert de waarde van het bestaande object (die wordt doorgegeven als parameter) naar het nieuw gemaakte object dat door de constructor wordt geïnstantieerd. We kunnen zeggen dat het gegevens van het ene object naar een ander object kopieert.

Voorbeeld:

Code:

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

Output:

4. Statische constructor

  • Het kan worden gedefinieerd door de constructornaam vooraf te laten gaan door een trefwoord. Het wordt impliciet gedefinieerd door de compiler (indien niet expliciet gedefinieerd) als de klasse een statische variabele bevat.
  • Het is het eerste blok dat in de klas wordt uitgevoerd en wordt automatisch opgeroepen. Het wordt slechts eenmaal uitgevoerd, ongeacht het aantal klasse-instanties. Het is parameterloos en accepteert geen toegangsmodificator.

Voorbeeld:

Code:

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

Output:

5. Particuliere aannemer

Constructor gemaakt met private specifier wordt een private constructor genoemd. We kunnen geen instantie van de klasse maken als deze alleen een privéconstructor bevat en andere klassen niet uit deze klasse kunnen worden afgeleid. Gebruikt in de klas die alleen statische leden bevat.

Voorbeeld:

Code:

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

Output:

Conclusie

Als we een type constructor in de klasse definiëren, is er geen impliciete constructor in de klasse die door de compiler wordt geleverd. Net als methoden kunnen geparametriseerde constructors ook worden overbelast met verschillende aantallen parameters. Constructors die impliciet door de compiler worden gedefinieerd, zijn altijd openbaar.

Aanbevolen artikel

Dit is een gids voor Constructor in C #. Hier bespreken we de typen Constructor in C # en zijn samenwerking met Code-implementatie en -output. U kunt ook onze andere voorgestelde artikelen doornemen voor meer informatie -

  1. Constructor in JavaScript en typen
  2. Wat is Random Number Generator in C #?
  3. Constructor in C ++ en typen
  4. Kopieer Constructor in C # (voorbeelden)
  5. Statische Constructor in Java | Werken | toepassingen