You are on page 1of 4

Objektumorientlt programozs alapfogalmak

Programozsi paradigma Programming Paradigm Programozsi md. Alapveten a program felptsre hasznlt eszkzkszletet jelenti, vagyis milyen egysgek kpezik a program alkotelemeit. (modulris programozs, objektumorientlt programozs, ltalnostott programozs, aspektusorientlt programozs stb.) Az adattpus lersnak legmagasabb szintje, amelyben az adattpust gy specifikljuk, hogy az adatok brzolsra s a mveletek implementcijra semmilyen elrst nem adunk. Lehetleg matematikai fogalmakat hasznlva rjuk le az adattpust (halmazok s ezeken rtelmezett mveletek). Elvonatkoztats. Segtsgvel privt implementcikat rejthetnk el egy nyilvnos interfsz mg. Plda: java.util csomagban List interfsz s az interfszt implementl ArrayList, illetve LinkedList osztlyok. Az absztrakci lehetv teszi, hogy mindkt osztly pldnyait ugyanazon List interfsz mveletein keresztl kezeljk. Olyan programozsi paradigma, amely a programokat objektumokbl pti fel. A program mkdse tulajdonkppen objektumok kommunikcijt jelenti. Legfontosabb alapelvei: egysgbezrs, rklds, polimorfizmus. Az osztly egy felhasznli tpus, amelynek alapjn pldnyok (objektumok) hozhatk ltre. Az osztly alapveten adat s metdus (mvelet) defincikat tartalmaz. Informcit (adatokat) trol s krsre mveleteket vgez. Van llapota, viselkedse s futsidben azonosthat. Objektumhoz tovbbtott krs. Vlaszknt az objektum vgrehajtja a krt mveletet. Az adatok s a metdusok osztlyba val sszezrst jelenti. Tulajdonkppen az objektum egysgbezrja az llapotot (adattagok rtkei) a viselkedsmddal (mveletekkel). Kvetkezmny: az objektum llapott csak a mveletein keresztl mdosthatjuk. Az objektum elrejti az adatait s bizonyos mveleteit. Ez azt jelenti, hogy nem tudjuk pontosan, hogy egy objektumban hogyan vannak az adatok brzolva, st a mveletek implementciit sem ismerjk. Az informcik elrejtse az objektum biztonsgt szolglja, amelyeket csak a ellenrztt mveleteken keresztl rhetnk el. Olyan osztlyok kztt rtelmezett viszony, amely segtsgvel egy ltalnosabb tpusbl (sosztly) egy sajtosabb tpust tudunk ltrehozni (utdosztly). Az utdosztly adatokat s mveleteket (viselkedsmdot) rkl, kiegszti ezeket sajt adatokkal s mveletekkel, illetve fellrhat bizonyos mveleteket. A kd jrafelhasznlsnak egyik mdja. Megklnbztetnk egyszeres s tbbszrs rktst. Adott osztly felhasznlsa szrmaztats, aggregci, illetve kompozci rvn j

Absztrakt adattpus Abstract Data Type (ADT)

Absztrakci Abstraction

Objektumorientlt programozs Object Oriented Programming

Osztly Class

Objektum (pldny) Object (Instance) zenet Message Egysgbezrs Encapsulation

Informci elrejtse Information Hiding

Szrmaztats (rkts) Inheritance

Kd jrafelhasznlsa

Objektumorientlt programozs alapfogalmak


Code Reuse Dinamikus (ksi) kts Dynamic (Late) Binding Helyettesthetsg Substitutability osztlyok ltrehozsra. Futsidej hozzrendelse a hvott metdusnak az objektumhoz. (Pl. C++: virtulis fggvnyek, Java: pldnymetdusok) (Lass) Ha S altpusa a T tpusnak (S osztlyt a T osztlybl szrmaztatjuk), akkor a T osztlybeli pldnyokat helyettesthetjk S osztlybeli pldnyokkal, anlkl, hogy programunk helyessgt veszlyeztetnnk. Fggvnyknyvtrak. Osztlyknyvtrak. Keretrendszerek.

Szoftver jrafelhasznlsa Software Reuse Statikus (korai) kts Static (Early) Binding Metdusok tlterhelse Methods Overloading

Fordtsidej hozzrendelse a hvott metdusnak az objektumhoz. (Pl. C++: nem virtulis fggvnyek, Java: osztlymetdusok- statikus metdusok) (Gyors) Tbb azonos nev, klnbz szignatrj fggvny. A fggvnyhvs aktulis paramterei meghatrozzk, hogy melyik fggvny fog meghvdni. Ezt mr a fordtsidben eldl (statikus, fordtsidej kts). Egy osztlyhierarchin bell az utdosztly jradefinilja az sosztly metdust. (azonos nv, azonos szignatra). Ha sosztly tpus mutatn vagy referencin keresztl rjk el az osztlyhierarchia pldnyait s ezen keresztl meghvjuk a fellrt metdust, akkor futsi idben dl el, hogy pontosan melyik metdus kerl meghvsra. (dinamikus, futsidej kts). Olyan osztly, amelynek van legalbb egy absztrakt mvelete. Felletet hatroz meg s nem lehet pldnyostani. Absztrakt osztly az absztrakt mveleteinek implementlst az utdosztlyokra bzza. Olyan osztly, amely nem tartalmaz absztrakt mveletet. Pldnyosthat.

Metdusok fellrsa Methods Overriding

Absztrakt osztly Abstract Class

Konkrt osztly Concrete Class Interfsz (Java) Interface

Viselkedsmdot definil. Gyakorlatilag egy mvelethalmaz deklarcijt jelenti. Ha egy osztly implementl egy adott interfszt, akkor pldnyai az interfszben meghatrozott viselkedssel fognak rendelkezni. Csak konstans adattagokat tartalmazhat s minden tagja nyilvnos. Meghatrozza az objektummal vgezhet mveletek halmazt.

Objektum intefsz Object Interface Polimorfizmus Polymorphism

Tbbalaksg. Egy tpuselmleti fogalom, amely szerint egy sosztly tpus vltoz hivatkozhat ugyanazon kzs sosztlybl szrmaz (vagy ugyanazon interfszt megvalst) osztlyok pldnyaira. A polimorfizmus lehet statikus s dinamikus. (a) statikus polimorfizmus: metdusok tlterhelse, fggvnysablonok, osztlysablonok. Satikus, fordtsidej kts. (b) dinamikus polimorfizmus: metdusok fellrsa. Dinamikus, futsidej kts.

Objektumorientlt programozs alapfogalmak


Konstruktor Constructor Az a mvelet, amely inicializlja az objektumot. Automatikusan hvdik. Egy osztlyhoz annyifle konstruktort ksztnk, ahnyfle kppen lehetv tesszk a pldnyok inicializlst . A konstruktorral ellenttes mvelet, ltalban a konstruktorban lekttt erforrsokat szabadtja fel. Az objektum megsemmistse eltt hajtdik vgre s automatikusan hvdik. Komponensek kztti fggsg mrtke. Megklnbztetnk laza s szoros csatols rendszereket. A laza csatols rendszerek esetben, a rendszer valamely komponensnek vltozsa nem vonja maga utn a tbbi komponenes mdostst. Statikus tagok= statikus adattagok + statikus metdustagok A statikus adattagok, olyan adatok, amelyeket az adott osztly pldnyai kzsen hasznlnak (osztott). A statikus mveletek olyan mveletek, amelyek az argumentumaikon illetve az osztly statikus adattagjain dolgoznak. Ezek a tagok mr pldnyok ltrehozsa eltt hasznlhatk. Rsz-egsz kapcsolat. A rszek alkotjk az egszet. Pldul az aut motor, vz s kerekek aggregcija. A rszek tllhetik az egszet. Sajtos aggregci, amikor a rsz szorosan hozztartozik az egszhez. A rszek nem lik tl az egszet. Pldul az emberi agy szorosan hozztartozik az emberhez. Implementcis mechanizmus, melynek sorn egy objektum tovbbtja (deleglja) a krst egy msik objektum fele. A deleglt objektum fogja feldolgozni a krst. Plda: Java esemnykezels (az esemnyfigyel fele tovbbtdik a krs) Olyan tpus, amely objektumok trolst biztostja. A trolsi funkci mellett karbantart mveleteket is biztost. Olyan tpus, amely pozcit hatroz meg egy halmazban (trol, adatfolyam). Mveletein keresztl biztostja a trol bejrst, azaz a trolt elemek egyms utni feldolgozst.

Destruktor Destructor

Fggsg Coupling

Osztlyszint (statikus) tagok Class (Static) Members

Aggregci Aggregation Kompozci Composition Delegls Delegation

Trol (Kontner) Container Bejr (Itertor): Iterator

C++ concepts
Algoritmus Algorithm Fggvnyobjektum Function Object ltalnosan megvalstott fggvny, amely minimlis kvetelmnyt tmaszt azon adatokkal szemben, amelyeken vgrehajtdik. Fggvnyknt viselked objektum. Az az elnye a fggvnymutathoz kpest, hogy mint objektum, llapotot is trol, nemcsak fggvnyknt viselkedik. Megvalsts: olyan osztllyal, amelyben rtelmezzk a fggvnyhvs opertort. Ezen kvl az osztly tartalmazhat adattagokat s ms segdmveleteket is. Olyan trol, amelyben minden elemnek van egy rgztett pozcija, amelyet a beszrs helye s ideje hatroz meg. Olyan trol, amelyben az elemek valamilyen rendezettsgi kritrium szerint vannak trolva. A beszrs helyt nem a beszrs ideje, hanem a beszrt elem

Sorozat tpus trol Sequence Asszociatv trol Associative Container

Objektumorientlt programozs alapfogalmak


rtke hatrozza meg. Fggvnysablon Function Template Osztlysablon Class Template Tpusparamterekkel elltott fggvny, amely egy fggvnycsaldot hatroz meg.

Tpusparamterekkel elltott osztly, amely egy tpuscsaldot hatroz meg.

Virtulis fggvny Virtual Function Tiszta virtulis fggvny Pure Virtual Function

Polimorfikus viselkedst megvalst fggvny. A virtual kulcssz segtsgvel kell bekapcsolni egy adott mvelet tbbalaksgt. Virtulis fggvnydeklarci. Absztrakt mvelet, amelynek az adott szinten nincs megadva az implementcija. Felletet meghatroz osztlyokban hasznljuk s az utdosztlyok fogjk implementlni. Olyan fggvnyek, amelyeket a fordt a hvs helyn kifejt, vagyis nem trtnik fggvnyhvs, hanem a hvs helyre behelyettestdik a fggvny kdja. Olyan fggvnyek, amelyek nem mdostjk az objektum llapott. Pldul a getAttribute tpus metdusok. Hozzfrs-szkt hatsa van. Az sosztlytl tvett adat s metdustagok privt tagokk alakulnak, ezltal az utdosztly mr nem biztostja az sosztly ltal meghatrozott viselkedsmdot. Az utdosztly az sosztly implementcijt rkli s nem annak interfszt. Ha A osztly bartja a B osztlynak, akkor az A osztlyban ugyangy hozzfrnk a B osztly tagjaihoz (privt s nem privt), mint magban a B osztlyban. Egy osztlysablon sajtostsa adott tpusra, amelynek clja vagy az adott tpusra val optimalizls, vagy az adott tpusra elllt rendellenes viselkeds kikerlse.

Inline fggvnyek: Inline Function Konstans tagfggvnyek Constant Functions Privt rkts Private Inheritance

Bart osztly Friend Class Sablonspecializci Template Specialization

You might also like