Az objektum-orientált programozás az egyik legnépszerűbb programozási paradigma. Ennek az az oka, hogy mind az adatokat, mind a függvényeket modellezi, és lehetővé teszi a valós világ objektumaiban való gondolkodást. Az osztályok az objektum-orientált programozás alapvető elemei, mivel ezek biztosítják az objektumok létrehozásához szükséges tervrajzot.
A C# egy népszerű többparadigmás programozási nyelv, amely az objektum-orientált paradigmát használja. Ebből a cikkből megtudhatja, hogyan hozhat létre és használhat osztályokat C# nyelven.
Osztálynyilatkozat készítése
A C#-ban az osztály egy hivatkozási típus, amely tartalmazza a nulla értékét mindaddig, amíg nem hoz létre egy új objektumot az osztályban. Új osztály létrehozásához C# nyelven több összetevőre lesz szüksége:
- Egy hozzáférés módosító.
- Az osztály kulcsszó.
- Az osztályhoz rendelni kívánt név.
- Nyitott és zárt kapcsos zárójelpár (amely az osztály attribútumait, konstruktorait és metódusait tartalmazza).
belső osztályVevő{ }
A fenti kód egy új osztályt hoz létre, amely elérhető más osztályok számára ugyanabban az összeállításban (összeállítási fájlban). A C# pontosan hat hozzáférés-módosítóval rendelkezik, amelyek segítségével szabályozhatja az osztályok, változók és metódusok hozzáférhetőségi szintjét. A hat hozzáférésmódosító a következő:
- nyilvános: minden osztály (az összeállítástól függetlenül) hozzáférhet a nyilvános osztályhoz és annak nyilvános tagjaihoz (attribútumok, konstruktorok és metódusok).
- magán: csak a privát osztály és tagjai férhetnek hozzá.
- védett: csak származtatott osztályok (gyermek és unoka osztályok) férhetnek hozzá a védett osztályhoz.
- belső: csak ugyanabban az összeállításban lévő osztályok férhetnek hozzá a belső osztályhoz.
- védett belső: csak ugyanabban az összeállításban lévő osztályok vagy egy másik összeállításból származtatott osztály férhetnek hozzá a védett belső osztályhoz.
- magánvédett: csak a származtatott osztályok ugyanabban az összeállításban férhetnek hozzá a privát védett osztályhoz.
Attribútumok deklarálása és elérése
Az attribútumok az Ön által létrehozott osztályok építőkövei. Érzékeny adatokat tárolnak, és általában privát vagy védett hozzáférés-módosítóval rendelkeznek. Ezért ahhoz, hogy hozzáférjen ezekhez az osztályokhoz a külső osztályokból, akcesszorokat és mutátorokat (gettereket és settereket) kell használnia.
A C# lehetővé teszi az attribútumok, mutátorok és hozzáférők deklarálását az alábbiak szerint:
belső osztályVevő
{
// attribútumok
magánint Személyi igazolvány száma;
magán string Név;
magánkettős Teljes;// szetterek
nyilvánosüresSetIdNumber(int Személyi igazolvány száma){ ez.IdNumber = IdNumber; }
nyilvánosüresSetName(karakterlánc neve){ ez.Name = Név; }
nyilvánosüresSetTotal(kettős Teljes){ ez.Összesen = Összesen; }
// getters
nyilvánosintGetIdNumber(){ Visszatérésez.Személyi igazolvány száma; }
nyilvános húr GetName(){ Visszatérésez.Név; }
nyilvánoskettősGetTotal(){ Visszatérésez.Teljes; }
}
Egyéb népszerű objektumorientált nyelvek használja a fenti megközelítést is. Sőt, ha akarod Java osztályokat hozzon létre, akkor a fenti szerkezetet kell használnia. A C#-nak azonban most van egy egyszerűbb módja az attribútumok és elérők létrehozására. C#-ban ennek az osztálynak ugyanaz a funkciója, mint a fentinek:
belső osztályVevő
{
public int IdNumber { kap; készlet; }
public string Név { kap; készlet; }
public double Összesen { kap; készlet; }
}
A fenti osztály tartalmazza azt, amit a C# hív tulajdonságait, amely attribútumok (mezők) és metódusok kombinációja. Val vel tulajdonságait, felére csökkentheti az attribútum-deklarációt, a mutátorokat és a hozzáférők kódját.
Konstruktorok deklarálása
A konstruktorok egy másik alapvető szempont egy osztályban. Ha objektumot szeretne létrehozni egy osztályból, meg kell hívnia az egyik konstruktorát. Minden konstruktornak van egy opcionális hozzáférés-módosítója, és ugyanaz a név, mint az osztályának. Az objektum-orientált programozási nyelvek esetében általában háromféle konstruktor létezik:
- Alapértelmezett konstruktor: nem vesz fel argumentumokat, és minden attribútumot alapértelmezett értékkel lát el.
- Elsődleges kivitelező: egy vagy több argumentumot vesz fel (az osztályban lévő változók számától függően).
- Konstruktor másolása: egy másik konstruktort vesz argumentumként.
A C#-ban van egy gyűjtőfogalom a fenti alapértelmezett és elsődleges konstruktorokra – a példánykonstruktorokra. Ennek a programozási nyelvnek két másik konstruktora is van (privát és statikus). Ez a cikk a három hagyományos konstruktorra összpontosít.
Alapértelmezett konstruktor
// alapértelmezett konstruktor
nyilvános Vevő()
{
IdNumber = 0;
Név = "ismeretlen";
Összesen = 0;
}
Elsődleges konstruktőr
// elsődleges konstruktor
nyilvánosVevő(int IdNumber, string Name, string CustomerType, kettős Teljes)
{
ez.IdNumber = IdNumber;
ez.Name = Név;
ez.Összesen = Összesen;
}
Copy Constructor
// másolás konstruktor
nyilvános Ügyfél (Ügyfél előző Ügyfél)
{
ez.IdNumber = előző Ügyfél. Személyi igazolvány száma;
ez.Név = előző Ügyfél. Név;
ez.Összesen = előző Ügyfél. Teljes;
}
Módszerek létrehozása
A módszerek nem kulcsfontosságú osztályelemek, de hasznosak. Egy osztálynak egy vagy több metódusa lehet. A metódusoknak hozzáférésmódosítója, visszatérési típusa, neve és törzse van.
// módszer
nyilvános string CustomerDetail()
{
Visszatérés " ID: " + IdNumber + " Név: " + Név + " Teljes: " + Összesen;
}
A fenti kód az ügyfél objektum karakterlánc reprezentációját adja vissza.
Objektumok létrehozása
Egy teljes osztály létrehozása, attribútumokkal, konstruktorokkal és metódusokkal való felszerelése után megkezdheti az objektumok létrehozását a különböző konstruktorok segítségével. Attribútumok nélküli objektum létrehozásához használhatja az alapértelmezett konstruktort:
Ügyfél János = új Vevő();
A fenti kódsor létrehoz egy alapértelmezett ügyfelet, és hozzárendeli egy nevű változóhoz János. Val vel János, elérheti az egyes ügyfélattribútumok alapértelmezett értékét.
Konzol.WriteLine(János.Név);
A fenti kód végrehajtása a következőket nyomtatja ki a konzolon:
Ismeretlen
Használhatja a János változó az ügyfélosztály bármely metódusának eléréséhez.
Konzol.WriteLine(János.CustomerDetail());
A fenti kódsor végrehajtása a következő kimenetet nyomtatja ki a konzolon:
ID: 0 Név: ismeretlen Összesen: 0
Attribútumokkal rendelkező objektum létrehozásához az elsődleges konstruktort kell használnia:
Ügyfél János = új ügyfél (1001, "gipsz Jakab", 250.20);
Konzol.WriteLine(János.CustomerDetail());
A fenti kód végrehajtása a következő kimenetet nyomtatja ki a konzolon:
ID: 1001 Név: JánosDámvadtehénTeljes: 250.2
A fenti objektum másolatának létrehozásához használhatja a másoláskonstruktort:
Ügyfél Johnny = új Ügyfél (János);
Konzol.WriteLine(Johnny.CustomerDetail());
A fenti kód végrehajtása a következő kimenetet nyomtatja ki a konzolon:
ID: 1001 Név: JánosDámvadtehénTeljes: 250.2
Mint látható, a másoláskonstruktor az elsődleges konstruktor másolata. A másolás konstruktor alapértelmezett konstruktort is használhat argumentumként:
Ügyfél János = új Vevő();
Ügyfél Johnny = új Ügyfél (János);
Konzol.WriteLine(Johnny.CustomerDetail());
A fenti kód végrehajtása a következő kimenetet nyomtatja ki a konzolon:
ID: 0 Név: ismeretlen Összesen: 0
Most már létrehozhat és használhat C# osztályokat
A C# objektumorientált paradigma segítségével osztályokat definiálhatunk, és objektumokat hozhatunk létre belőlük. Minden osztályhoz létrehozhat metódusokat, amelyek azután az objektumok attribútumaival működnek.
Azonban nem csak az objektum-orientált paradigmát kell ismerni. A három legfontosabb programozási paradigma kötelező, objektumorientált és funkcionális.