Elõre: Egységbezárás
Fel: Programozás
C++-ban Vissza: C
++ kommentek
Az OOP alapjai
Az objektum-orientált programozás (röviden OOP) a
természetes gondolkodást, cselekvést közelítõ
programozási mód, amely a programozási nyelvek tervezésének
természetes fejlõdése következtében alakult
ki. Az így létrejött nyelv sokkal struktúráltabb,
sokkal modulárisabb és absztraktabb, mint egy hagyományos
nyelv. Egy OOP nyelvet három fontos dolog jellemez. Ezek a következõk:
-
Az egységbezárás (encapsulation) azt
takarja, hogy az adatstruktúrákat és az adott struktúrájú
adatokat kezelõ függvényeket (Smalltalk, illetve a TURBO
Pascal terminológiával élve metódusokat) kombináljuk;
azokat egy egységként kezeljük, és elzárjuk
õket a külvilág elõl. Az így kapott egységeket
objektumoknak nevezzük. Az objektumoknak megfelelõ tárolási
egységek típusát a C++-ban osztálynak
(class) nevezzük.
-
Az öröklés (inheritance) azt jelenti, hogy
adott, meglévõ osztályokból levezetett újabb
osztályok öröklik a definálásukhoz használt
alaposztályok már létezõ adatstruktúráit
és függvényeit. Ugyanakkor újabb tulajdonságokat
is definálhatnak, vagy régieket újraértelmezhetnek.
Így egy osztályhierarchiához jutunk.
-
A többrétûség (polymorphism) alatt
azt értjük, hogy egy adott tevékenység (metódus)
azonosítója közös lehet egy adott osztályhierarchián
belül, ugyanakkor a hierarchia minden egyes osztályában
a tevékenységet végrehajtó függvény
megvalósítása az adott osztályra nézve
specifikus lehet. Az ún. virtuális függvények
lehetõvé teszik, hogy egy adott metódus konkrét
végrehajtási módja csak a program futása során
derüljön ki. Ugyancsak a többrétûség
fogalomkörébe tartozik az ún. overloading, aminek
egy sajátságos esete a C nyelv standard operátorainak
átdefiniálása (operator overloading).
Ezek a tulajdonságok együtt azt eredményezik, hogy programkódjaink
sokkal struktúráltabbá, könnyebben bõvíthetõvé,
könnyebben karbantarthatóvá válnak, mintha hagyományos,
nem OOP-technikával írnánk õket. Hogy a C++
elõnyeit élvezhessük, kicsit módosítanunk
kell a programozásról alkotott képünket. Ehhez
segít hozzá a fenti három tulajdonság részletesebb
tárgyalása.