Introduksjon til konstruktør i C #

Konstruktør spiller en veldig viktig rolle i objektorientert programmering. La oss forstå konstruktørens rolle i C # ved hjelp av følgende punkter:

  • En konstruktør er en spesiell metode som er til stede i en klasse som er ansvarlig for å initialisere variablene i klassen.
  • Navnet er det samme som klassens navn.
  • Det blir automatisk kjørt når vi oppretter en instans av klassen.
  • En konstruktør returnerer ingen verdi.
  • Hvis vi ikke definerer en konstruktør, blir en implisitt konstruktør alltid levert av klassen som kalles standardkonstruktør.

syntaks:

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

Her er public Student () en metode som ikke har noen returtype, ikke engang ugyldig, og navnet er det samme som klassens navn, dvs. 'Student'. Dermed er denne metoden konstruktøren av denne klassen.

Når vi skal lage et objekt i denne klassen ved å bruke:

Student obj = new Student();

Da blir koden inne i konstruktøren utført.

Working of Constructor in C #

1. Konstruktøren initialiserer datamedlemmer for det nye objektet. Den blir påkalt av den 'nye' operatøren umiddelbart etter at minnet blir tildelt det nye objektet.

2. Eksplisitte konstruktører (konstruktører definert av brukeren) kan være parameterløse eller parameteriserte. Hvis det blir parameterisert, kan verdiene, som sendes til konstruktøren, tilordnes datadellene til klassen.

3. Den implisitte konstruktøren initialiserer variabler i klassen med samme verdi selv om vi lager flere forekomster av den klassen.

Eksempel:

Kode:

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

Produksjon:

Bildelig representasjon av over programmet:

4. Eksplisitt konstruktør med parametere lar oss initialisere variabler i klassen med en annen verdi hver gang vi oppretter et eksempel på den klassen.

Eksempel:

Kode:

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

Produksjon:

Bildelig representasjon av over programmet:

Topp 5 konstruktortyper i C #

C # gir fem typer konstruktører. De er som følger:

1. Standardkonstruktør

  • En konstruktør uten noen parameter heter Standard Constructor. Hvis vi ikke definerer det eksplisitt, vil det implisitt bli gitt av kompilatoren.
  • I et slikt tilfelle kan vi kalle det implisitt konstruktør. Standard eller implisitt konstruktør initialiserer alle datadelementer i klassen med sine standardverdier som alle numeriske felt til null og alle streng- og objektfelter til null.

Eksempel:

Kode:

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

Produksjon:

2. Parameterisert konstruktør

Konstruktør med minst en parameter kalles Parameterized Constructor. Parametere til konstruktøren kan sendes mens du oppretter forekomst av klassen. Det lar oss initialisere hver forekomst av en klasse med forskjellige verdier.

Eksempel:

Kode:

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

Produksjon:

3. Kopier konstruktør

Det er en parameterisert konstruktør som tar samme klasses objekt som en parameter. Den kopierer det eksisterende objektets verdi (som sendes som parameter) til det nyopprettede objektet som er konstruert av konstruktøren. Vi kan si at den kopierer data fra ett objekt til et annet objekt.

Eksempel:

Kode:

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

Produksjon:

4. Statisk konstruktør

  • Det kan defineres ved å prefikse konstruktørnavnet med et nøkkelord. Det er implisitt definert av kompilatoren (hvis ikke definert eksplisitt) hvis klassen inneholder noen statisk variabel.
  • Det er den første blokken som blir utført i klassen og vil bli ringt automatisk. Det blir utført bare en gang uavhengig av antall klasseforekomster. Det er parameterløst og godtar ingen tilgangsmodifiserere.

Eksempel:

Kode:

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

Produksjon:

5. Privat konstruktør

Konstruktør opprettet med privat spesifiser kalles en privat konstruktør. Vi kan ikke opprette en forekomst av klassen hvis den bare inneholder privat konstruktør og den ikke tillater andre klasser å stamme fra denne klassen. Brukes i klassen som bare inneholder statiske medlemmer.

Eksempel:

Kode:

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

Produksjon:

Konklusjon

Hvis vi definerer noen type konstruktør i klassen, vil det ikke være noen implisitte konstruktører i klassen levert av kompilatoren. Som metoder, kan parametriserte konstruktører også overbelastes med forskjellige antall parametere. Konstruktører definert implisitt av kompilatoren er alltid offentlige.

Anbefalt artikkel

Dette er en guide til Constructor i C #. Her diskuterer vi typene Constructor i C # og dens Working sammen med Code Implementation and Output. Du kan også gå gjennom andre foreslåtte artikler for å lære mer -

  1. Konstruktør i JavaScript og typer
  2. Hva er Random Number Generator i C #?
  3. Konstruktør i C ++ og typer
  4. Copy Constructor i C # (eksempler)
  5. Statisk konstruktør i Java | Arbeider | applikasjoner