Objektorientert programmering er et av de mest populære programmeringsparadigmene. Dette er fordi det modellerer både data og funksjoner og lar deg tenke i form av virkelige objekter. Klasser er et grunnleggende aspekt ved objektorientert programmering, da de gir blåkopien du trenger for å lage objekter.
C# er et populært programmeringsspråk for flere paradigmer, som bruker det objektorienterte paradigmet. I denne artikkelen lærer du hvordan du oppretter og bruker klasser i C#.
Opprette en klasseerklæring
I C# er en klasse en referansetype som vil inneholde null verdi til du oppretter et nytt objekt i klassen. For å lage en ny klasse i C# trenger du flere komponenter:
- En tilgangsmodifikator.
- De klasse nøkkelord.
- Navnet du vil gi klassen.
- Et par åpne og lukkede bukseseler (som vil omslutte attributtene, konstruktørene og metodene til klassen).
innvendig klasseKunde{ }
Koden ovenfor oppretter en ny klasse som er tilgjengelig for andre klasser i samme assembly (kompilasjonsfil). C# har nøyaktig seks tilgangsmodifikatorer som du kan bruke til å kontrollere tilgjengelighetsnivåene til klassene, variablene og metodene dine. De seks tilgangsmodifikatorene er:
- offentlig: hver klasse (uavhengig av dens sammenstilling) kan få tilgang til den offentlige klassen og dens offentlige medlemmer (attributter, konstruktører og metoder).
- privat: bare privatklassen og dens medlemmer har tilgang til den.
- beskyttet: bare avledede klasser (barne- og barnebarnsklasser) har tilgang til den beskyttede klassen.
- innvendig: bare klasser i samme samling har tilgang til den interne klassen.
- beskyttet innvendig: bare klasser i samme sammenstilling eller en avledet klasse fra en annen sammenstilling kan få tilgang til den beskyttede interne klassen.
- privat beskyttet: bare avledede klasser i samme samling kan få tilgang til den private beskyttede klassen.
Deklarere og få tilgang til attributter
Attributter er byggeklossene for klassene du oppretter. De har sensitive data og har vanligvis en privat eller beskyttet tilgangsmodifikator. Derfor, for å få tilgang til disse klassene fra eksterne klasser, må du bruke accessorer og mutatorer (gettere og settere).
C# lar deg deklarere attributtene, mutatorene og accessorene dine som følger:
innvendig klasseKunde
{
// egenskaper
privatint ID-nummer;
privat streng Navn;
privatdobbelt Total;// settere
offentligtomromSetIdNumber(int ID-nummer){ dette.IdNumber = IdNumber; }
offentligtomromSetName(strengnavn){ dette.Navn = Navn; }
offentligtomromSettTotal(dobbelt Total){ dette.Total = Total; }
// getters
offentligintGetIdNumber(){ komme tilbakedette.ID-nummer; }
offentlig streng GetName(){ komme tilbakedette.Navn; }
offentligdobbeltGetTotal(){ komme tilbakedette.Total; }
}
Andre populære objektorienterte språk bruk også tilnærmingen ovenfor. Faktisk, hvis du vil lage Java-klasser, må du bruke strukturen ovenfor. Imidlertid har C# nå en enklere måte å lage attributter og accessorer på. I C# har denne klassen samme funksjon som den ovenfor:
innvendig klasseKunde
{
public int IdNumber { få; sett; }
offentlig streng Navn { få; sett; }
offentlig dobbel Totalt { få; sett; }
}
Klassen ovenfor inneholder det C# kaller eiendommer, som er en kombinasjon av attributter (felt) og metoder. Med eiendommer, kan du redusere attributtdeklarasjonen, mutator- og accessorkoden med det halve.
Erklærende konstruktører
Konstruktører er et annet grunnleggende aspekt ved en klasse. For å lage et objekt fra en klasse må du ringe en av dens konstruktører. Hver konstruktør har en valgfri tilgangsmodifikator og samme navn som sin klasse. For objektorienterte programmeringsspråk er det generelt tre typer konstruktører:
- Standard konstruktør: tar ingen argumenter og gir hvert attributt en standardverdi.
- Primær konstruktør: tar ett eller flere argumenter (avhengig av antall variabler i klassen).
- Kopi konstruktør: tar en annen konstruktør som argument.
C# har en paraplybetegnelse for standard- og primærkonstruktørene ovenfor – instanskonstruktører. Dette programmeringsspråket har også to andre konstruktører (private og statiske). Denne artikkelen fokuserer på de tre tradisjonelle konstruktørene.
Standard konstruktør
// standard konstruktør
offentlig Kunde()
{
IDNumber = 0;
Navn = "ukjent";
Totalt = 0;
}
Primær konstruktør
// primær konstruktør
offentligKunde(int IdNumber, string Name, string CustomerType, dobbelt Total)
{
dette.IdNumber = IdNumber;
dette.Navn = Navn;
dette.Total = Total;
}
Kopier Konstruktør
// kopi konstruktør
offentlig Kunde (Kunde forrige kunde)
{
dette.IdNumber = forrige kunde. ID-nummer;
dette.Name = forrige kunde. Navn;
dette.Total = forrige kunde. Total;
}
Opprette metoder
Metoder er ikke en avgjørende klassekomponent, men de er nyttige. En klasse kan ha en eller flere metoder. En metode har en tilgangsmodifikator, en returtype, et navn og en kropp.
// metode
offentlig string CustomerDetail()
{
komme tilbake " ID: " + IDNumber + " Navn: " + Navn + " Total: " + Totalt;
}
Koden ovenfor returnerer en strengrepresentasjon av kundeobjektet.
Opprette objekter
Etter å ha opprettet en komplett klasse, utstyrt den med attributter, konstruktører og en metode, kan du begynne å lage objekter ved å bruke de forskjellige konstruktørene. For å lage et objekt uten attributter, kan du bruke standardkonstruktøren:
Kunde John = ny Kunde();
Kodelinjen ovenfor oppretter en standardkunde og tilordner den til en variabel kalt John. Med John, kan du få tilgang til standardverdien for hvert kundeattributt.
Konsoll.WriteLine(John.Navn);
Ved å kjøre koden ovenfor skrives følgende ut i konsollen:
Ukjent
Du kan også bruke John variabel for å få tilgang til hvilken som helst metode i kundeklassen.
Konsoll.WriteLine(John.CustomerDetail());
Ved å kjøre kodelinjen ovenfor skrives følgende ut i konsollen:
ID: 0 Navn: ukjent Totalt: 0
For å lage et objekt med attributter, bruker du primærkonstruktøren:
Kunde John = ny kunde (1001, "John Doe", 250.20);
Konsoll.WriteLine(John.CustomerDetail());
Ved å kjøre koden ovenfor skrives følgende ut i konsollen:
ID: 1001 Navn: JohnDoeTotal: 250.2
For å lage en kopi av objektet ovenfor kan du bruke kopikonstruktøren:
Kunde Johnny = ny Kunde (John);
Konsoll.WriteLine(Johnny.CustomerDetail());
Ved å kjøre koden ovenfor skrives følgende ut i konsollen:
ID: 1001 Navn: JohnDoeTotal: 250.2
Som du kan se er kopikonstruktøren en kopi av den primære konstruktøren. Kopikonstruktøren kan også ta en standardkonstruktør som et argument:
Kunde John = ny Kunde();
Kunde Johnny = ny Kunde (John);
Konsoll.WriteLine(Johnny.CustomerDetail());
Ved å kjøre koden ovenfor skrives følgende ut i konsollen:
ID: 0 Navn: ukjent Totalt: 0
Nå kan du opprette og bruke C#-klasser
Du kan bruke det objektorienterte paradigmet i C# til å definere klasser og lage objekter fra dem. Du kan lage metoder for hver klasse som deretter kan operere på objektenes attributter.
Det objektorienterte paradigmet er imidlertid ikke det eneste du trenger å være kjent med. De tre beste programmeringsparadigmene er imperative, objektorienterte og funksjonelle.