Uvod u Konstruktor u C #

Konstruktor ima vrlo važnu ulogu u objektno-orijentiranom programiranju. Razumijemo li ulogu konstruktora u C # uz pomoć sljedećih točaka:

  • Konstruktor je posebna metoda prisutna unutar klase koja je odgovorna za inicijalizaciju varijabli klase.
  • Ime mu je isto kao i ime klase.
  • Automatski se izvršava kada stvorimo instancu klase.
  • Konstruktor ne vraća nijednu vrijednost.
  • Ako ne definiramo konstruktor, implicitni konstruktor uvijek pruža klasa koja se naziva zadani konstruktor.

Sintaksa:

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

Ovdje je javni Student () metoda koja nema nijedan tip povratka, čak nije ničiji i njegov je naziv isti kao i naziv klase, tj. 'Student'. Dakle, ova metoda je konstruktor ove klase.

Kada ćemo stvoriti objekt ove klase koristeći:

Student obj = new Student();

Tada će se izvršiti kod unutar konstruktora.

Rad Konstruktora u C #

1. Konstruktor inicijalizira članove podataka za novi objekt. Poziva "novi" operator odmah nakon što se memorija dodijeli novom objektu.

2. Izričiti konstruktori (konstruktori koje definira korisnik) mogu biti bez ikakvih parametara. Ako je parametrizirano, tada vrijednosti, proslijeđene konstruktoru, mogu se dodijeliti članovima podataka klase.

3. Implicitni konstruktor inicijalizira varijable klase s istom vrijednošću čak i ako stvorimo više instanci te klase.

Primjer:

Kodirati:

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

Izlaz:

Slikovni prikaz gore navedenog programa:

4. Izričiti konstruktor s parametrima omogućava nam inicijaliziranje varijabli klase s različitim vrijednostima svaki put kada stvorimo instancu te klase.

Primjer:

Kodirati:

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

Izlaz:

Slikovni prikaz gore navedenog programa:

Top 5 vrsta konstruktora u C #

C # pruža pet vrsta konstruktora. Oni su kako slijedi:

1. Zadani konstruktor

  • Konstruktor bez ikakvog parametra naziva se Default Constructor. Ako to ne definiramo izričito, tada će to sastavitelj implicitno pružiti.
  • U takvom slučaju možemo to nazvati implicitnim konstruktorom. Zadani ili implicitni konstruktor inicijalizira sve članove podataka klase sa njihovim zadanim vrijednostima, kao što su sva numerička polja u nulu, a sva nizova i polja predmeta u null.

Primjer:

Kodirati:

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

Izlaz:

2. Parameterizirani konstruktor

Konstruktor s najmanje jednim parametrom naziva se Parameterized Constructor. Parametri konstruktoru mogu se proslijediti tijekom stvaranja instancije klase. Omogućuje nam inicijalizaciju svake instance klase s različitim vrijednostima.

Primjer:

Kodirati:

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

Izlaz:

3. Konstruktor kopiranja

To je parametrizirani konstruktor koji objekt iste klase uzima kao parametar. Kopira vrijednost postojećeg objekta (koja se prosljeđuje kao parametar) u novostvoreni objekt koji instancira konstruktor. Možemo reći da kopira podatke jednog objekta u drugi objekt.

Primjer:

Kodirati:

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

Izlaz:

4. statički konstruktor

  • To se može definirati prefiksiranjem naziva konstruktora ključnom riječju. Kompilator (ako nije izričito definiran) implicitno ga definira ako klasa sadrži statičku varijablu.
  • To je prvi blok koji se izvršava u klasi i automatski će se pozvati. Izvršit će se samo jednom bez obzira na broj instanci klase. Parametar je i ne prihvaća bilo koji modifikator pristupa.

Primjer:

Kodirati:

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

Izlaz:

5. Privatni konstruktor

Konstruktor kreiran s privatnim odrednikom naziva se privatni konstruktor. Ne možemo stvoriti instancu klase ako sadrži samo privatni konstruktor i ne dopušta da druge klase potječu iz ove klase. Koristi se u klasi koja sadrži samo statičke članove.

Primjer:

Kodirati:

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

Izlaz:

Zaključak

Ako u klasi definiramo bilo koju vrstu konstruktora, tada neće postojati implicitni konstruktor u klasi koju pruža prevoditelj. Kao i metode, parametrizirani konstruktori također se mogu preopteretiti različitim brojem parametara. Konstruktori koje implicitno definira sastavljač uvijek su javni.

Preporučeni članak

Ovo je vodič za Constructor na C #. Ovdje smo raspravljali o vrstama konstruktora u C # i njegovom radu zajedno s implementacijom i izlazom koda. Možete i proći naše druge predložene članke da biste saznali više -

  1. Konstruktor u JavaScript i vrste
  2. Što je generator slučajnih brojeva u C #?
  3. Konstruktor u C ++ i tipovima
  4. Kopiraj konstruktor u C # (primjeri)
  5. Statički konstruktor na Javi | Radni | Prijave

Kategorija: