Úvod do konštruktora v jazyku C #

Konštruktor hrá veľmi dôležitú úlohu v objektovo orientovanom programovaní. Pochopme úlohu konštruktéra v jazyku C # pomocou nasledujúcich bodov:

  • Konštruktor je špeciálna metóda prítomná vo vnútri triedy, ktorá je zodpovedná za inicializáciu premenných triedy.
  • Jeho názov je rovnaký ako názov triedy.
  • Po vytvorení inštancie triedy sa automaticky spustí.
  • Konštruktor nevracia žiadnu hodnotu.
  • Ak nedefinujeme konštruktora, implicitný konštruktor vždy poskytuje trieda, ktorá sa nazýva predvolený konštruktor.

syntaxe:

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

Verejný študent () je tu metóda, ktorá nemá žiadny návratový typ, dokonca ani neplatná a jej názov je rovnaký ako názov triedy, tj „študent“. Táto metóda je teda konštruktorom tejto triedy.

Keď vytvoríme objekt tejto triedy pomocou:

Student obj = new Student();

Potom bude vykonaný kód vo vnútri konštruktora.

Práca konštruktora v jazyku C #

1. Konštruktor inicializuje dátové členy pre nový objekt. Vyvolá ho nový operátor ihneď po pridelení pamäte pre nový objekt.

2. Explicitné konštruktory (konštruktory definované používateľom) môžu byť bez parametrov alebo parametrizované. Ak je parametrizovaný, hodnoty odovzdané konštruktorovi môžu byť priradené dátovým členom triedy.

3. Implicitný konštruktor inicializuje premenné triedy s rovnakou hodnotou, aj keď vytvárame viac inštancií tejto triedy.

Príklad:

kód:

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

Výkon:

Obrázkové zobrazenie vyššie uvedeného programu:

4. Explicitný konštruktor s parametrami nám umožňuje inicializovať premenné triedy s inou hodnotou zakaždým, keď vytvoríme inštanciu tejto triedy.

Príklad:

kód:

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

Výkon:

Obrázkové zobrazenie vyššie uvedeného programu:

Top 5 typov konštruktorov v C #

C # poskytuje päť typov konštruktorov. Sú to tieto:

1. Predvolený konštruktor

  • Konštruktor bez akéhokoľvek parametra sa nazýva predvolený konštruktor. Ak to nedefinujeme explicitne, bude to implicitne poskytované kompilátorom.
  • V takom prípade to môžeme nazvať implicitným konštruktorom. Predvolený alebo implicitný konštruktor inicializuje všetkých dátových členov triedy s ich predvolenými hodnotami, ako sú všetky číselné polia na nulu a všetky polia reťazcov a objektov na null.

Príklad:

kód:

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

Výkon:

2. Parametrizovaný konštruktor

Konštruktor s najmenej jedným parametrom sa nazýva Parameterizovaný konštruktor. Parametre do konštruktora sa môžu odovzdávať pri vytváraní inštancie triedy. To nám umožňuje inicializovať každú inštanciu triedy s rôznymi hodnotami.

Príklad:

kód:

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

Výkon:

3. Kopírovanie Constructor

Je to parametrizovaný konštruktor, ktorý berie objekt rovnakej triedy ako parameter. Skopíruje hodnotu existujúceho objektu (ktorá sa odovzdá ako parameter) na novovytvorený objekt, ktorý vytvoril inštitút. Dá sa povedať, že kopíruje údaje jedného objektu na iný objekt.

Príklad:

kód:

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

Výkon:

4. Statický konštruktor

  • Dá sa definovať predponou názvu konštruktora pomocou kľúčového slova. Je implicitne definované kompilátorom (ak nie je explicitne definované), ak trieda obsahuje nejakú statickú premennú.
  • Je to prvý blok, ktorý sa má vykonať v triede a bude sa volať automaticky. Bude vykonaná iba raz bez ohľadu na počet inštancií triedy. Je bez parametrov a neprijíma žiadny modifikátor prístupu.

Príklad:

kód:

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

Výkon:

5. Súkromný stavebník

Konštruktor vytvorený so súkromným špecifikátorom sa nazýva súkromný konštruktor. Inštanciu triedy nemôžeme vytvoriť, ak obsahuje iba súkromného konštruktora a neumožňuje odvodiť z tejto triedy iné triedy. Používa sa v triede, ktorá obsahuje iba statické členy.

Príklad:

kód:

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

Výkon:

záver

Ak definujeme akýkoľvek typ konštruktora v triede, nebude existovať žiadny implicitný konštruktor v triede poskytovanej kompilátorom. Podobne ako metódy, parametrizované konštruktory môžu byť tiež preťažené rôznymi početmi parametrov. Konštruktory implicitne definované kompilátorom sú vždy verejné.

Odporúčaný článok

Toto je príručka pre Constructor v jazyku C #. Tu diskutujeme o typoch Konštruktora v C # a jeho práci spolu s implementáciou a výstupom kódu. Viac informácií nájdete aj v ďalších navrhovaných článkoch -

  1. Konštruktor v JavaScripte a typoch
  2. Čo je generátor náhodných čísel v C #?
  3. Konštruktor v C ++ a typoch
  4. Kopírovanie konštruktora v jazyku C # (príklady)
  5. Statický konštruktor v Jave Pracovné aplikácia

Kategórie: