Objektinis programavimas yra viena iš populiariausių programavimo paradigmų. Taip yra todėl, kad jis modeliuoja duomenis ir funkcijas bei leidžia galvoti apie realaus pasaulio objektus. Klasės yra pagrindinis objektinio programavimo aspektas, nes jose pateikiamas projektas, kurio reikia objektams kurti.

C# yra populiari kelių paradigmų programavimo kalba, kurioje naudojama objektinė paradigma. Šiame straipsnyje sužinosite, kaip kurti ir naudoti klases C#.

Klasės deklaracijos sukūrimas

C# kalboje klasė yra nuorodos tipas, kuriame bus nulinis vertę, kol nesukursite naujo klasės objekto. Norėdami sukurti naują klasę C#, jums reikės kelių komponentų:

  • Prieigos modifikatorius.
  • The klasė raktažodį.
  • Pavadinimas, kurį norite priskirti klasei.
  • Pora atvirų ir uždarų garbanotų skliaustų (kurie apims klasės atributus, konstruktorius ir metodus).
vidinis klasėKlientas{ }

Aukščiau pateiktas kodas sukuria naują klasę, kurią gali pasiekti kitos tos pačios komplektacijos klasės (kompiliacijos failas). C# turi tiksliai šešis prieigos modifikatorius, kuriuos galite naudoti norėdami valdyti savo klasių, kintamųjų ir metodų prieinamumo lygius. Šeši prieigos modifikatoriai yra šie:

instagram viewer

  • viešas: kiekviena klasė (nepriklausomai nuo jos surinkimo) gali pasiekti viešąją klasę ir jos viešuosius narius (atributus, konstruktorius ir metodus).
  • privatus: ją gali pasiekti tik privati ​​klasė ir jos nariai.
  • apsaugotas: tik išvestinės klasės (vaikų ir anūkų klasės) gali pasiekti saugomą klasę.
  • vidinis: tik tos pačios komplektacijos klasės gali pasiekti vidinę klasę.
  • apsaugotas vidinis: prie saugomos vidinės klasės gali patekti tik tos pačios agregato klasės arba iš kito agregato išvestinė klasė.
  • privatus saugomas: tik išvestinės klasės tame pačiame rinkinyje gali pasiekti privačią apsaugotą klasę.

Atributų deklaravimas ir prieiga

Atributai yra jūsų kuriamų klasių blokai. Juose saugomi neskelbtini duomenys ir paprastai yra privatus arba apsaugotas prieigos modifikatorius. Todėl norint pasiekti šias klases iš išorinių klasių, jums reikės naudoti priedus ir mutatorius (geterius ir seterius).

C# leidžia deklaruoti savo atributus, mutatorius ir priedus taip:

vidinis klasėKlientas
{
// atributai
privatustarpt Asmens tapatybės dokumento numeris;
privatus eilutės pavadinimas;
privatusdvigubai Iš viso;

// seteriai
viešastuštumaSetIdNumber(tarpt Asmens tapatybės dokumento numeris){ tai.IdNumber = IDNumber; }
viešastuštumaNustatytiName(eilutės pavadinimas){ tai.Vardas = Vardas; }
viešastuštumaSet Total(dvigubai Iš viso){ tai.Iš viso = Iš viso; }

// geteriai
viešastarptGautiIdNumber(){ grąžintitai.Asmens tapatybės dokumento numeris; }
viešas styga GetName(){ grąžintitai.Vardas; }
viešasdvigubaiGetTotal(){ grąžintitai.Iš viso; }
}

Kiti populiarūs objektinės kalbos taip pat naudokite aukščiau pateiktą metodą. Tiesą sakant, jei norite sukurti Java klases, turėsite naudoti aukščiau pateiktą struktūrą. Tačiau C# dabar turi lengvesnį atributų ir priedų kūrimo būdą. C# ši klasė turi tą pačią funkciją kaip ir aukščiau:

vidinis klasėKlientas
{
public int IDNumber { gauti; rinkinys; }
vieša eilutė Pavadinimas { gauti; rinkinys; }
public double Iš viso { gauti; rinkinys; }
}

Aukščiau esančioje klasėje yra tai, ką iškviečia C# savybių, kuris yra atributų (laukų) ir metodų derinys. Su savybių, galite perpus sumažinti atributų deklaraciją, mutatorių ir priedų kodą.

Deklaruojantys konstruktoriai

Konstruktoriai yra dar vienas esminis klasės aspektas. Norėdami sukurti objektą iš klasės, turėsite iškviesti vieną iš jos konstruktorių. Kiekvienas konstruktorius turi pasirenkamą prieigos modifikatorių ir tą patį pavadinimą kaip ir jo klasė. Objektinio programavimo kalboms paprastai yra trijų tipų konstruktoriai:

  • Numatytasis konstruktorius: nepriima argumentų ir kiekvienam atributui suteikia numatytąją reikšmę.
  • Pirminis konstruktorius: paima vieną ar daugiau argumentų (priklausomai nuo kintamųjų skaičiaus klasėje).
  • Kopijavimo konstruktorius: kaip argumentą priima kitą konstruktorių.

C# turi bendrąjį terminą numatytiesiems ir pirminiams konstruktoriams – egzempliorių konstruktoriai. Ši programavimo kalba taip pat turi du kitus konstruktorius (privatų ir statinį). Šiame straipsnyje dėmesys sutelkiamas į tris tradicinius konstruktorius.

Numatytasis konstruktorius

// numatytasis konstruktorius
viešas Klientas ()
{
IDNumber = 0;
Vardas = "nežinomas";
Iš viso = 0;
}

Pagrindinis konstruktorius

// pirminis konstruktorius
viešasKlientas(tarpt IdNumber, eilutės pavadinimas, eilutė CustomerType, dvigubai Iš viso)
{
tai.IdNumber = IDNumber;
tai.Vardas = Vardas;
tai.Iš viso = Iš viso;
}

Kopijavimo konstruktorius

// kopijavimo konstruktorius
viešas Klientas (ankstesnis klientas)
{
tai.IdNumber = ankstesnisKlientas. Asmens tapatybės dokumento numeris;
tai.Vardas = ankstesnisKlientas. Vardas;
tai.Iš viso = ankstesnisKlientas. Iš viso;
}

Kūrimo metodai

Metodai nėra esminis klasės komponentas, tačiau jie yra naudingi. Klasė gali turėti vieną ar daugiau metodų. Metodas turi prieigos modifikatorių, grąžinimo tipą, pavadinimą ir turinį.

// metodas
viešas eilutė CustomerDetail()
{
grąžinti " ID: " + IDNumber + " Vardas: " + Vardas + " Iš viso: " + Iš viso;
}

Aukščiau pateiktas kodas grąžina kliento objekto eilutės atvaizdavimą.

Objektų kūrimas

Sukūrę visą klasę, aprūpinę ją atributais, konstruktoriais ir metodu, galite pradėti kurti objektus naudodami skirtingus konstruktorius. Norėdami sukurti objektą be atributų, galite naudoti numatytąjį konstruktorių:

Klientas Jonas = naujas Klientas ();

Aukščiau pateikta kodo eilutė sukuria numatytąjį klientą ir priskiria jį kintamajam, vadinamam Jonas. Su Jonas, galite pasiekti numatytąją kiekvieno kliento atributo vertę.

Konsolė.WriteLine(Jonas.Vardas);

Vykdant aukščiau pateiktą kodą konsolėje išspausdinama ši informacija:

Nežinoma

Taip pat galite naudoti Jonas kintamąjį, kad pasiektumėte bet kurį kliento klasės metodą.

Konsolė.WriteLine(Jonas.Kliento informacija());

Vykdant aukščiau pateiktą kodo eilutę konsolėje išspausdinama tokia išvestis:

ID: 0 Vardas: nežinomas Iš viso: 0

Norėdami sukurti objektą su atributais, naudokite pirminį konstruktorių:

Klientas Jonas = naujas klientas (1001, "John Doe", 250.20);
Konsolė.WriteLine(Jonas.Kliento informacija());

Vykdant aukščiau pateiktą kodą konsolėje išspausdinama ši išvestis:

ID: 1001 vardas: JonasDoeIš viso: 250.2

Norėdami sukurti aukščiau esančio objekto kopiją, galite naudoti kopijavimo konstruktorių:

Klientas Johnny = naujas Klientas (Jonas);
Konsolė.WriteLine(Džonis.Kliento informacija());

Vykdant aukščiau pateiktą kodą konsolėje išspausdinama ši išvestis:

ID: 1001 vardas: JonasDoeIš viso: 250.2

Kaip matote, kopijavimo konstruktorius yra pirminio konstruktoriaus kopija. Kopijos konstruktorius taip pat gali naudoti numatytąjį konstruktorių kaip argumentą:

Klientas Jonas = naujas Klientas ();
Klientas Johnny = naujas Klientas (Jonas);
Konsolė.WriteLine(Džonis.Kliento informacija());

Vykdant aukščiau pateiktą kodą konsolėje išspausdinama ši išvestis:

ID: 0 Vardas: nežinomas Iš viso: 0

Dabar galite kurti ir naudoti C# klases

Galite naudoti objektinę paradigmą C#, kad apibrėžtumėte klases ir iš jų sukurtumėte objektus. Kiekvienai klasei galite sukurti metodus, kurie gali veikti pagal jų objektų atributus.

Tačiau į objektą orientuota paradigma nėra vienintelė, su kuria reikia susipažinti. Trys pagrindinės programavimo paradigmos yra būtinos, orientuotos į objektą ir funkcinės.