Objektumorientált programozás C ++ nyelven

Az objektumorientált programozás, röviden OOP, célja a valós világ entitásainak megvalósítása, például az öröklés, a rejtőzködés és a polimorfizmus a programozásban.

Az OOP fő célja az adatok és az azokon működő funkciók összekapcsolása, hogy a kód egyetlen más része sem férjen hozzá ezekhez az adatokhoz, kivéve ezt a funkciót.

Tanuljuk meg az objektumorientált programozási nyelv különféle jellemzőit.

Tárgy:

Az objektumok alapvető futásidős objektumok egy objektumorientált rendszerben. Az objektumok egy osztály példányai, amelyek felhasználó által definiált adattípusok.

class person { char name[20]; int id; public: void getdetails(){} }; int main() { person p1; //p1 is an object }

Az objektumok helyet foglalnak a memóriában, és társított címük van, például pascal-ban lévő rekord vagy C-ben egy szerkezet vagy egyesülés.

Amikor egy program végrehajtásra kerül, az objektumok egymással üzenetek küldésével lépnek kapcsolatba.

Minden objektum adatokat és kódot tartalmaz az adatok kezeléséhez. Az objektumok kölcsönhatásba léphetnek anélkül, hogy meg kellene tudniuk egymás adatainak vagy kódjának részleteit. Elég tudni az objektumok által elfogadott üzenet típusát és a válasz típusát.

Osztály:

Az osztály az adatok, függvények vagy módszerek tervrajza. Az osztály nem foglal helyet.

class class_name { private: //data members and member functions declarations public: //data members and member functions declarations protected: //data members and member functions declarations };

Az osztály egy felhasználó által definiált adattípus, például a C szerkezete és uniója

Alapértelmezés szerint az osztályváltozók privátak, struktúra esetén azonban nyilvánosak. A fenti példában a személy osztály.

Kapszulázás és adatkivétel:

Az adatok és a funkciók összevonása (egyesítése) egyetlen egységbe tokozás néven ismert. Az adatok nem hozzáférhetők a külvilág számára, és csak azok a funkciók férhetnek hozzá hozzájuk, amelyek az osztályt beburkolják. Az adatok ilyen, a program általi közvetlen hozzáféréstől való szigetelését adatok rejtésének vagy információ rejtésének hívják.

Az adatok absztrakciója csak a szükséges információk külföldre juttatására és a megvalósítás részleteinek elrejtésére utal.

Vegyünk egy osztály komplexet például a getReal () és a getImag () nyilvános függvényekkel. Megvalósíthatjuk az osztályt 2-es méretű tömbként vagy két változóként.

Az absztrakció előnye, hogy a megvalósítást bármikor megváltoztathatjuk, és a Complex osztály felhasználóit ez nem érinti, mivel a metódus felületünk ugyanaz marad. Ha megvalósításunk nyilvános lett volna, nem tudtuk volna megváltoztatni.

Öröklés:

Az öröklés az a folyamat, amelynek során az egyik osztály objektumai megszerzik egy másik osztály objektumainak tulajdonságait. Támogatja a hierarchikus osztályozás fogalmát.

Az öröklés biztosítja az újrafelhasználhatóságot. Ez azt jelenti, hogy további funkciókat hozzáadhatunk egy meglévő osztályhoz anélkül, hogy azt módosítanánk.

Polimorfizmus:

A polimorfizmus több formát ölthet. Egy művelet eltérő viselkedést mutathat különböző esetekben. A viselkedés a műveletben használt adatok típusától függ.

A C ++ támogatja az operátor túlterhelését és a funkció túlterhelését. Az operátor túlterhelése az a folyamat, amelynek során az operátor különböző viselkedéseket mutat be különböző esetekben. A függvények túlterhelése egyetlen függvénynév használatával különböző típusú feladatok elvégzéséhez. A polimorfizmust széles körben használják az öröklés megvalósításában.

Dinamikus kötés:

Dinamikus összerendelés esetén a függvényhívásra válaszként végrehajtandó kód futásidejűleg kerül meghatározásra. A C ++ virtuális funkciókkal rendelkezik ennek támogatására.

Üzenet továbbítása:

Az objektumok egymással információ küldésével és fogadásával kommunikálnak. Az objektumra vonatkozó üzenet egy eljárás végrehajtásának kérése, ezért a fogadó objektumban egy olyan funkciót hív meg, amely a kívánt eredményeket generálja.

Az üzenet továbbítása magában foglalja az objektum nevének, a funkció nevének és az elküldendő információk megadását.

Több információ

Objektumorientált programozási koncepciók: Hogyan lehet nulláról eggyel tovább lépni az objektumokkal

Hogyan magyarázzuk el az objektumorientált programozási koncepciókat egy 6 éves gyereknek