Objektorienteeritud programmeerimine on üks populaarsemaid programmeerimisparadigmasid. Selle põhjuseks on asjaolu, et see modelleerib nii andmeid kui ka funktsioone ning võimaldab mõelda reaalsete objektide alusel. Klassid on objektorienteeritud programmeerimise põhiaspekt, kuna need pakuvad objektide loomiseks vajalikku kavandit.
C# on populaarne mitme paradigma programmeerimiskeel, mis kasutab objektorienteeritud paradigmat. Sellest artiklist saate teada, kuidas C#-s klasse luua ja kasutada.
Klassi deklaratsiooni koostamine
C#-s on klass viitetüüp, mis sisaldab null väärtust, kuni loote klassi uue objekti. Uue klassi loomiseks C#-s vajate mitut komponenti:
- Juurdepääsu muutja.
- The klass märksõna.
- Nimi, mille soovite klassile määrata.
- Avatud ja suletud lokkis sulgude paar (mis sisaldavad klassi atribuute, konstruktoreid ja meetodeid).
sisemine klassKlient{ }
Ülaltoodud kood loob uue klassi, millele pääsevad juurde sama komplekti (kompilatsioonifaili) teised klassid. C#-l on täpselt kuus juurdepääsumuutjat, mida saate kasutada oma klasside, muutujate ja meetodite juurdepääsetavuse tasemete juhtimiseks. Kuus juurdepääsumuutjat on järgmised:
- avalik: igal klassil (olenemata selle komplektist) on juurdepääs avalikule klassile ja selle avalikele liikmetele (atribuudid, konstruktorid ja meetodid).
- privaatne: sellele pääsevad juurde ainult eraklass ja selle liikmed.
- kaitstud: kaitstud klassile pääsevad juurde ainult tuletatud klassid (lapse- ja lapselasteklassid).
- sisemine: sisemisele klassile pääsevad juurde ainult samas komplektis olevad klassid.
- kaitstud sisemine: kaitstud siseklassile pääsevad juurde ainult samas komplektis olevad klassid või mõnest teisest komplektist tuletatud klass.
- privaatne kaitstud: privaatselt kaitstud klassile pääsevad juurde ainult sama koostu tuletatud klassid.
Atribuutide deklareerimine ja juurdepääs
Atribuudid on teie loodud klasside ehitusplokid. Need hoiavad tundlikke andmeid ja neil on tavaliselt privaatne või kaitstud juurdepääsu modifikaator. Seetõttu peate nendele klassidele juurdepääsuks välistest klassidest kasutama accessoreid ja mutaatoreid (getterid ja setterid).
C# võimaldab teil deklareerida oma atribuudid, mutaatorid ja aksessuaarid järgmiselt:
sisemine klassKlient
{
// atribuudid
privaatneint Isikukood;
privaatne string Nimi;
privaatnekahekordne Kokku;// seadjad
avaliktühineSetIdNumber(int Isikukood){ see.IdNumber = IDNumber; }
avaliktühineMääraNimi(stringi nimi){ see.Nimi = Nimi; }
avaliktühineMäära Total(kahekordne Kokku){ see.Kokku = Kokku; }
// getters
avalikintGetIdNumber(){ tagasisee.Isikukood; }
avalik string HangiName(){ tagasisee.Nimi; }
avalikkahekordneGetTotal(){ tagasisee.Kokku; }
}
Muu populaarne objektorienteeritud keeled kasutage ka ülaltoodud lähenemisviisi. Tegelikult, kui soovite luua Java klasse, peate kasutama ülaltoodud struktuuri. Kuid C#-l on nüüd lihtsam viis atribuutide ja aksessuaaride loomiseks. C#-s on sellel klassil sama funktsioon kui ülaloleval:
sisemine klassKlient
{
public int IDNumber { saada; seatud; }
avalik string Nimi { saada; seatud; }
public double Kokku { saada; seatud; }
}
Ülaltoodud klass sisaldab seda, mida C# kutsub omadused, mis on atribuutide (väljade) ja meetodite kombinatsioon. Koos omadused, saate oma atribuudi deklaratsiooni, mutaatorite ja aksessuaaride koodi poole võrra vähendada.
Konstruktorite deklareerimine
Konstruktorid on klassi teine põhiaspekt. Klassist objekti loomiseks peate kutsuma ühe selle konstruktoritest. Igal konstruktoril on valikuline juurdepääsumuutja ja sama nimi, mis selle klassil. Objektorienteeritud programmeerimiskeelte jaoks on tavaliselt kolme tüüpi konstruktoreid:
- Vaikekonstruktor: ei võta argumente ja annab igale atribuudile vaikeväärtuse.
- Esmane konstruktor: võtab ühe või mitu argumenti (olenevalt muutujate arvust klassis).
- Kopeeri konstruktor: võtab argumendiks teise konstruktori.
C#-l on ülaltoodud vaike- ja põhikonstruktorite katustermin – eksemplarikonstruktorid. Sellel programmeerimiskeelel on ka kaks muud konstruktorit (privaatne ja staatiline). See artikkel keskendub kolmele traditsioonilisele konstruktorile.
Vaikekonstruktor
// vaikekonstruktor
avalik Klient()
{
IDNumber = 0;
Nimi = "teadmata";
Kokku = 0;
}
Esmane konstruktor
// esmane konstruktor
avalikKlient(int IDNumber, string Nimi, string CustomerType, kahekordne Kokku)
{
see.IdNumber = IDNumber;
see.Nimi = Nimi;
see.Kokku = Kokku;
}
Kopeerimiskonstruktor
// koopiakonstruktor
avalik Klient (kliendi eelmine klient)
{
see.IdNumber = eelmine klient. Isikukood;
see.Nimi = eelmineKlient. nimi;
see.Kokku = eelmineKlient. Kokku;
}
Loomismeetodid
Meetodid ei ole klassi oluline komponent, kuid need on kasulikud. Klassil võib olla üks või mitu meetodit. Meetodil on juurdepääsu modifikaator, tagastustüüp, nimi ja keha.
// meetod
avalik string CustomerDetail()
{
tagasi " ID: " + IDNumber + " Nimi: " + Nimi + " Kokku: " + Kokku;
}
Ülaltoodud kood tagastab kliendiobjekti stringi esituse.
Objektide loomine
Pärast tervikliku klassi loomist, selle atribuutide, konstruktorite ja meetodiga varustamist võite alustada objektide loomist erinevate konstruktorite abil. Atribuutideta objekti loomiseks võite kasutada vaikekonstruktorit:
Klient John = uus Klient();
Ülaltoodud koodirida loob vaikekliendi ja määrab selle kutsutavale muutujale John. Koos John, pääsete juurde iga kliendiatribuudi vaikeväärtusele.
konsool.WriteLine(John.Nimi);
Ülaltoodud koodi käivitamine prindib konsoolile järgmise:
Tundmatu
Võite kasutada ka John muutuja juurdepääsuks mis tahes meetodile kliendiklassis.
konsool.WriteLine(John.CustomerDetail());
Ülaltoodud koodirea täitmine prindib konsoolis järgmise väljundi:
ID: 0 Nimi: teadmata Kokku: 0
Atribuutidega objekti loomiseks kasutate esmast konstruktorit:
Klient John = uus klient (1001, "John Doe", 250.20);
konsool.WriteLine(John.CustomerDetail());
Ülaltoodud koodi käivitamine prindib konsoolis järgmise väljundi:
ID: 1001 Nimi: JohnDoeKokku: 250.2
Ülaltoodud objektist koopia loomiseks võite kasutada koopiakonstruktorit:
Klient Johnny = uus Klient (John);
konsool.WriteLine(Johnny.CustomerDetail());
Ülaltoodud koodi käivitamine prindib konsoolis järgmise väljundi:
ID: 1001 Nimi: JohnDoeKokku: 250.2
Nagu näete, on koopiakonstruktor esmase konstruktori koopia. Koopiakonstruktor võib argumendina võtta ka vaikekonstruktori:
Klient John = uus Klient();
Klient Johnny = uus Klient (John);
konsool.WriteLine(Johnny.CustomerDetail());
Ülaltoodud koodi käivitamine prindib konsoolis järgmise väljundi:
ID: 0 Nimi: teadmata Kokku: 0
Nüüd saate luua ja kasutada C# klasse
C#-s saab kasutada objektorienteeritud paradigmat klasside määratlemiseks ja nendest objektide loomiseks. Saate luua iga klassi jaoks meetodeid, mis võivad seejärel töötada nende objektide atribuutidega.
Objektorienteeritud paradigma pole aga ainus, mida peate tundma. Kolm parimat programmeerimisparadigmat on hädavajalikud, objektorienteeritud ja funktsionaalsed.