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.