Sissejuhatus konstruktorisse C #

Objektorienteeritud programmeerimises on konstruktoril väga oluline roll. Mõistagem konstruktori rolli C # -s järgmiste punktide abil:

  • Ehitaja on klassis esinev spetsiaalne meetod, mis vastutab klassi muutujate lähtestamise eest.
  • Selle nimi on sama mis klassi nimi.
  • See käivitatakse automaatselt, kui loome klassi eksemplari.
  • Ehitaja ei tagasta mingit väärtust.
  • Kui me ei defineeri konstruktorit, pakub vaikimisi konstruktori alati klass, mida nimetatakse vaikekonstruktoriks.

Süntaks:

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

Siinkohal on avalik õpilane () meetod, millel puudub tagastamise tüüp, mis pole isegi tühine ja selle nimi on sama, mis klassi nimi, st 'õpilane'. Seega on see meetod selle klassi konstruktor.

Kui loome selle klassi objekti, kasutades:

Student obj = new Student();

Siis käivitatakse konstruktori sees olev kood.

Konstruktori töö C # -s

1. Ehitaja lähtestab uue objekti andmeliikmed. 'Uus' operaator käivitab selle kohe pärast mälu eraldamist uuele objektile.

2. Selgesõnalised konstruktorid (kasutaja määratletud konstruktorid) võivad olla parameetriteta või parameetritega. Kui see on parameetriline, siis saab konstruktorile edastatud väärtused omistada klassi andmeliikmetele.

3. Kaudne konstruktor initsialiseerib klassi muutujad sama väärtusega, isegi kui loome klassist mitu eksemplari.

Näide:

Kood:

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äljund:

Ülaltoodud programmi piltlik esitus:

4. Selge konstruktor koos parameetritega võimaldab meil klassi muutujad lähtestada erineva väärtusega iga kord, kui loome selle klassi esinemisjuhu.

Näide:

Kood:

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äljund:

Ülaltoodud programmi piltlik esitus:

C-kategooria ehitaja 5 parimat tüüpi

C # pakub viit tüüpi konstruktoreid. Need on järgmised:

1. Vaikekonstruktor

  • Ilma ühegi parameetrita ehitajat nimetatakse vaikekonstruktoriks. Kui me ei määratle seda selgesõnaliselt, pakub see kompilaatori kaudselt.
  • Sellisel juhul võime seda nimetada kaudseks konstruktoriks. Vaikimisi või kaudne konstruktor lähtestab klassi kõik andmeliikmed nende vaikeväärtustega, nagu näiteks kõik numbriväljad nulliks ja kõik stringi- ja objektiväljad nulliks.

Näide:

Kood:

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äljund:

2. Parameetriline konstruktor

Vähemalt ühe parameetriga konstruktorit nimetatakse parameetriliseks konstruktoriks. Parameetrid konstruktorile saab edastada klassi eksemplari loomisel. See võimaldab meil lähtestada klassi iga eksemplari erinevate väärtustega.

Näide:

Kood:

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äljund:

3. Kopeeri konstruktor

See on parameetritega konstruktor, mis võtab parameetriks sama klassi objekti. See kopeerib olemasoleva objekti väärtuse (mis edastatakse parameetrina) vastloodud objektile, mida konstruktor kiirendab. Võib öelda, et see kopeerib ühe objekti andmed teisele objektile.

Näide:

Kood:

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äljund:

4. Staatiline konstruktor

  • Seda saab määratleda ehitaja nime eesliitega märksõnaga. See on kompilaatori poolt kaudselt määratletud (kui seda pole täpselt määratletud), kui klass sisaldab mingit staatilist muutujat.
  • See on esimene plokk, mis klassis täidetakse, ja see kutsutakse automaatselt. See teostatakse ainult üks kord, sõltumata klassi esinemisjuhtude arvust. See on parameetriteta ja ei aktsepteeri ühtegi juurdepääsu modifikaatorit.

Näide:

Kood:

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äljund:

5. Erakonstruktor

Privaatse spetsifikaatoriga loodud konstruktorit nimetatakse privaatseks konstruktoriks. Me ei saa luua klassi eksemplari, kui see sisaldab ainult privaatset konstruktorit ja see ei võimalda teistel klassidel sellest klassist tuleneda. Kasutatakse klassis, mis sisaldab ainult staatilisi liikmeid.

Näide:

Kood:

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äljund:

Järeldus

Kui määratleme klassis mis tahes tüüpi konstruktori, siis kompilaatori pakutavas klassis pole ühtegi kaudset konstruktorit. Sarnaselt meetoditele saab ka parameetritega konstruktoreid erinevate parameetrite arvuga üle koormata. Kompilaatori kaudselt määratletud konstruktorid on alati avalikud.

Soovitatav artikkel

See on juhend konstruktorile C # -s. Siin käsitleme C # konstruktoritüüpe ja selle toimimist koos koodi rakendamist ja väljundit. Lisateavet leiate ka meie muudest soovitatud artiklitest -

  1. Ehitaja JavaScriptis ja tüübid
  2. Mis on juhuslike arvude generaator C # -s?
  3. Konstruktor C ++ ja tüüpides
  4. Kopeeri konstruktor C #-s (näited)
  5. Staatiline konstruktor Java | Töötamine | Rakendused

Kategooria: