PROGRAMOZÁSMÓDSZERTAN II



Hasonló dokumentumok
Programozási alapismeretek 4.

Már megismert fogalmak áttekintése

Interfészek. PPT 2007/2008 tavasz.

Programozás. Objektum Orientált Programozás (OOP) Alapfogalmak. Fodor Attila

Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés.

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

Programozás módszertan p.1/46

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás

Java programozási nyelv 5. rész Osztályok III.

OOP. Alapelvek Elek Tibor

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

OOP #1 (Bevezetés) v :39:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj.

GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és. Függvénysablonok

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

és az instanceof operátor

C++ programozási nyelv

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

OOP #14 (referencia-elv)

Java és web programozás

JAVA PROGRAMOZÁS 2.ELŐADÁS

Objektumorientált szoftverfejlesztés alapjai

C++ programozási nyelv

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1

Java programozási nyelv 4. rész Osztályok II.

Bevezetés a Python programozási nyelvbe

Objektumorientált programozás C# nyelven

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

ELTE SAP Excellence Center Oktatóanyag 1

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

Interfészek. Programozás II. előadás. Szénási Sándor.

Objektum orientált programozás Bevezetés

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Adatstruktúrák, algoritmusok, objektumok

OOP: Java 8.Gy: Abstract osztályok, interfészek

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Absztrakció. Objektum orientált programozás Bevezetés. Általános Informatikai Tanszék Utolsó módosítás:

Objektumelvű alkalmazások fejlesztése 6. gyakorlat. Öröklődés, polimorfizmus. Öröklődés Kódismétlődés objektum-orientált szerkezetben

Öröklés és Polimorfizmus

C++ programozási nyelv Struktúrák a C++ nyelvben

Objektumorientált paradigma és programfejlesztés Bevezető

Bevezetés, a C++ osztályok. Pere László

C++ programozási nyelv Konstruktorok-destruktorok

Osztálytervezés és implementációs ajánlások

Osztálytervezés és implementációs ajánlások

Programozás II. 6.Öröklés Dr. Iványi Péter

Objektumorientált paradigma és a programfejlesztés

Programozási nyelvek Java

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

Iman 3.0 szoftverdokumentáció

OOP alapok Egy OOP nyelvet három fontos dolog jellemez. egységbezárás ( encapsulation objektumoknak öröklés ( inheritance

Java és web programozás

Bánsághi Anna 2014 Bánsághi Anna 1 of 31

ISA szimulátor objektum-orientált modell (C++)

Osztály öröklődés. Öröklődés és polimorfizmus. Programozás II. előadás. Szénási Sándor.

Objektum orientált programozás (Object Oriented Programming = OOP)

I. Objektumorientált programozás

Objektum orientált programozás (Object Oriented Programming = OOP)

Osztályok. 4. gyakorlat

A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin

III. OOP (objektumok, osztályok)

III. Alapfogalmak és tervezési módszertan SystemC-ben

Programozási nyelvek Java

SZOFTVERFEJLESZTÉSI TECHNOLÓGIÁK

Programozás I. 5. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Alkalmazott Modul III 6. előadás. Objektumorientált programozás: öröklődés és polimorfizmus

Bevezetés a programozásba előadás: Öröklődés

Programozás III KIINDULÁS. Különböző sportoló típusok vannak: futó, magasugró, focista, akik teljesítményét más-más módon határozzuk meg.

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

Programozás III. - NGB_IN001_3

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

Inczédy György Középiskola, Szakiskola és Kollégium Nyíregyháza, Árok u. 53. TANMENET. Informatika szakmacsoport

Bevezetés a programozásba Előadás: Tagfüggvények, osztály, objektum

Programozás BMEKOKAA146. Dr. Bécsi Tamás 7. előadás

Objektumelvű programozás

Pénzügyi algoritmusok

Abstract osztályok és interface-ek. 7-dik gyakorlat

Virtuális függvények (late binding)

OOP. #6 (VMT és DMT) v :33:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj.

SZOFTVER = a számítógépet működtető és az azon futó programok összessége.

Algoritmusok, adatszerkezetek, objektumok

Smart Pointer koncepciója

Web-programozó Web-programozó

Az élet szép, környezetünk tele van fákkal, virágokkal, repdeső madarakkal, vidáman futkározó állatokkal.

Programozás. Bevezetés. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs

1. Bevezetés A C++ nem objektumorientált újdonságai 3

Java és web programozás

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok

Programozás C++ -ban

Prezentáció használata

Az ErdaGIS térinformatikai keretrendszer

Számítógép és programozás 2

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Programozás C++ -ban

1. Öröklés Rétegelés Nyilvános öröklés - isa reláció Korlátozó öröklődés - has-a reláció

Értékelés a BUS programhoz elkészült termékek magyar változatáról Készítette: Animatus Kft. Jókay Tamás január 07.

Elemi Alkalmazások Fejlesztése II.

Átírás:

PROGRAMOZÁSMÓDSZERTAN II A programozás természetesen ugyan úgy fejlődik mint az informatika egyéb területei. Az új hardver és szoftver elemek maguk után vonták a programozás és a programozási nyelvek fejlődését. A grafikus rendszerek megjelenésével a programoknak is grafikusan kellett működni. Az ablakkezelés, több processzoros rendszerek és a multitaszk megjelenése mind-mind hatással volt a programozási nyelvekre. A strukturált programozást lassan kezdte felváltani az objektum orientált. Az objektum orientált programozási módszertan alapgondolata, hogy az adat és a funkcionális modell egymástól elválaszthatatlan. Gyakorlatilag ez az OOP rendszerek alapja. Mindent erre építünk fel és ebből származtatunk. MUNKAHELYZET- ESETFELVETÉS OBJEKTUMORIENTÁLT PROGRAMOZÁS Az objektum orientált programozás (OOP) gyakorlatilag egy teljesen új szemléletmódot követel a programok megvalósításának tekintetében. Amíg egy strukturált rendszerben egymásra épülő, sorban lefutó algoritmusokkal valósítottuk meg egy probléma megoldását, addig itt úgynevezett objektumok segítségével kell mindezt megtennünk. Nem a programrészek megírása a fő cél, hanem az objektumok hierarchiája és kapcsolata áll a középpontban. Ennek a rendszernek a pontos megtervezése és megvalósítása adja a feladat megoldását. Maga az objektum egy elég absztrakt fogalomként értelmezhető. Rendelkezik különböző tulajdonságokkal, amiket többféleképpen használhatunk. Maga a programozás elve a valós világ lemodellezésén alapult. Olyan tulajdonságokat próbáltak megvalósítani benne, amik a természetben már beváltak. Ha objektumokról beszélünk, először az osztályok felépítését kell megvizsgálni, ugyanis minden objektum egy előre definiált osztály példánya. Egy osztályban általában egy feladat elvégzéséhez szükséges kódrészleteket gyűjtik össze. Egy osztályt létrehozása után példányosítani kell, hogy használhatóvá váljanak a benne található algoritmusok. Az osztály egy példányát nevezzük objektumnak. Programozási nyelvtől függő dolog, de a legtöbb esetben a class szóval definiáljuk az osztályokat. Egy osztály csak függvényeket és változókat tartalmazhat. Az osztályok definiálására egy példa: 1

Class Alap {} Ebben az esetben az osztály neve Alap lesz. A benne található függvényeket és változókat külön kell definiálnunk, meghatározva a hatókörüket is. Ezeket a függvényeket és változókat csak az osztályon keresztül tudjuk elérni a programokban. Ezeket ezért metódusoknak is szokás nevezni. Vannak nyelvek, amik megengedik példányosítás nélkül is meghívni a metódusokat, de ekkor a hívásnál hivatkozni kell az osztály nevére is! Egy osztály definiálása a következő példán keresztül tanulmányozható: class Alap { public: Alap() { this->msg = "Helló, világ!";} private: std::string msg;}; Gyakorlatilag a Helló világ típusú programokon keresztül szokás bemutatni a programozási nyelvek többségét. Ha definiálva van egy osztályunk, akkor lényeges a konstruktor szerepe. Ennek a feladata futás folyamán a megfelelő objektum létrehozása. Egy osztályban több konstruktor is szerepelhet. A fenti példánk gyakorlatilag egy ilyen konstruktor bemutatása volt. Abban az esetben, ha már nincs szükségünk a létrehozott osztályunkra, egy destruktor függvénnyel felszabadíthatjuk a memóriát tőle. Egy osztálynak több konstruktora is lehet, de mindig csak egy destruktorral rendelkezhet. A létrehozás után nagyon fontos lépés a példányosítás. Gyakorlatilag ekkor keltjük életre a megfelelő metódusokat, amik ténylegesen el is végzik a feladatukat a programban. Alap* obj = new Alap(); Az OOP rendszerek három fő tulajdonsággal rendelkeznek: 1. Öröklődés 2. Zártság 3. Többrétűség Ezek a tulajdonságok adják a gerincét minden OOP rendszernek. Most vizsgájuk meg részletesebben mit is jelentenek! 1. Öröklődés Az objektumok sok esetben rendelkeznek olyan tulajdonságokkal, amit a program során sokszor fel tudunk használni. A régi rendszerekben ezeket az algoritmusokat többször meg kellett írni, vagy pedig olyan eljárásba helyezni, ami meghívható volt a kívánt helyről. Az objektumoknál elég egyszer megírni, és a következő objektumok örökölhetik az elődeik tulajdonságai által. 2

Az öröklődés gyakorlatilag egy meglévő osztály továbbfejlesztése. A meglévő osztály neve ősosztály, a továbbfejlesztetté pedig utódosztály. Az öröklés tranzitív tulajdonság. Egy öröklési lánc legfelső osztálya az alaposztály. Az adatok csak örökölhetők, a metódusok felül is írhatók. Egyszeres öröklés: Egy osztálynak legfeljebb egy őse lehet. Többszörös öröklés: Egy osztálynak több őse is lehet. Öröklés jelölése (osztályhierarchia diagram): UtódOsztály1 Mezők Metódusok ŐsOsztály Mezők Metódusok UtódOsztály2 Mezők Metódusok Az öröklődés hatalmas előnye, hogy leegyszerűsíti a gyakran használatos függvények és változók alkalmazását. Ha egy ősosztályban szereplő metódusra van szükségünk, akkor egyszerűen meghívhatjuk azt. Problémát jelenthet, ha olyan függvényt szeretnénk meghívni, amelyik nem az osztály ősében szerepel. Ekkor egy egyszerű példányosítással ez is megoldható, de ebben az esetben figyelni kell arra, nehogy a nevek miatt esetleg ütközések alakulhatnak ki a programban! Nézzünk egy példát az öröklődésre: class Alap { public: Alap(){ }; void f(){ }; }; class Derived : public Alap { public: Derived(){ }; }; Derived* der = new Derived(); der->f(); A fenti példában a Delivered osztály örökölte az f függvényt, ami az Alap osztályban lett definiálva. Ha a Delivered osztályból is származtatnánk egy új osztályt, akkor az ugyancsak örökölhetné tovább az f függvényt. 2. Zártság Az OOP nyelvek legkényesebb fogalma: általában e fogalom mentén válnak el az iskolák, attól függően, hogy melyik mit vall róla. Az eljárás orientált nyelvek hatáskör fogalmának, a láthatóságnak a kiterjesztése a legtöbbször félreértelmezett fogalom. Nem objektumhoz kapcsolódik. 3

Bezárás_1: Nem objektumhoz kötődik. Az osztály egy absztrakt adattípus. Az osztály rendelkezik egy interfész és implementációs résszel. Az osztály objektumaihoz csak az interfész részen keresztül férhetünk hozzá, az implementációhoz egyáltalán nem, korlátozott hozáférést jelent. Ez az információrejtés elve (Information hiding). Egy osztály objektumai egy az osztály által definiált interfészen keresztül érhetők el, és csak így! A nyelv a benne definiált attributumokat és metódusokat két részre osztja: Nyilvános rész: amelybe tartozó eszközöket minden kliens osztály lát. Privát rész: kívülről nem látható. Bezárás_2: A bezárás eljárás orientált nyelvek hatáskör fogalmának általánosítása OOP körökben, ahol garantáltan létezik egy olyan eszközrendszer, mellyel a programozó tudja szabályozni, hogy az osztályból mi látható és kinek a számára. 3. Többrétűség Objektum polimorfizmus: Minden objektum tudja saját magáról, hogy melyik osztály példányaként jött létre. Egy objektum objektuma saját osztályának, de az öröklődési hierarchiában objektuma valamennyi elődosztálynak is egyben. Így minden egyes objektum szerepelhet minden olyan szituációban, ahol az ősosztály objektuma szerepelhet, nem csak a saját osztálya példányaként használható. Módszerpolimorfizmus (overriding): Egy leszármazott osztály egy örökölt módszert újraimplementálhat: a módszer specifikációja változatlan marad, de az implementáció más lehet az öröklődési vonalon. SZAKMAI INFORMÁCIÓTARTALOM OBJEKTUM ORIENTÁLT PROGRAMOZÁS NÉHÁNY PÉLDÁN ÁT A következő részben a DELPHI nyelv segítségével mutatom be az OOP rejtelmeit. A Delphit szokták Objeckt Pascal-nak is nevezni, mivel a Pascal nyelv szintaktikájára épülnek az utasításai. A kompatibilitás megőrzése végett a strukturált utasításokat is kezeli, de valójában egy objektum orientált nyelvről van szó. A Delphi szerkesztői felületének kezelésére és a grafikai elemek használatára most nem térek ki, ezt mindenki elsajátíthatja különböző szakkönyvekből, kiadványokból. A Delphiben minden osztály őse a TObject ősosztály. A deklarációkban gyakorlatilag jelölhetjük is ezt: Tmyclass = class (TObject) End; 4

Ha egy új osztályt akarunk létrehozni, ami az imént létrehozott Tmyclass osztályból származik, akkor a következő képen tehetjük meg: Tsubclass = class (Tmyclass) End; Az új osztályunk ebben az esetben a Tsublass lesz. Az öröklődés szabályai szerint a szülő osztály metódusait lehetőségünk van örököltetni ebbe az osztályba is. A szülő osztály tulajdonságai ezután bármikor használhatóak. Most nézzük meg, hogy egy metódust hogyan tudunk definiálni, és aztán a későbbiekben használni a különböző osztályokban. A példában létrehozunk egy dolgozó osztályt, amiben a cég dolgozóit akarjuk a későbbiekben tárolni: Tdolgozo = class név: String; beosztás: String; fizetés: longint; end; Ezen az osztályon deklarálunk egy változót a következő képen: Var melos:tdolgozo; A program futása során létre kell hoznunk az osztály egy elemét, amikor használni szeretnénk. Mikor pedig már nincs rá szükségünk, fel kell szabadítanunk a memóriát a felesleges foglalástól: var melos: Tdolgozo; begin melos:= Tdolgozo.Create; //memória foglalás melos.nev:= Lapos Elemér ; melos.free; //memória felszabadítás end; Az osztályok tulajdonságainak öröklése így nagyban megkönnyíti a hasonló adatok kezelését. Az örökléseknél csak azokat a tulajdonságokat kell továbbvinnünk, amelyekre szükségünk lehet. A hiányosságokat pedig az új alosztályunkban deklarálhatjuk. 5

MUNKAHELYZET- ESETFELVETÉS ESEMÉNYVEZÉRELT PROGRAMOZÁS Az eseményvezérelt programozás lényege, hogy a program egyes részei nem előre meghatározható sorrendben futnak le, hanem a vezérlés lefutását bizonyos külső és belső események határozzák meg. A program egésze nem más, mint események bekövetkezésére válaszul végrehajtott alprogramok, amelyek nagyrészt egymástól függetlenül dolgoznak és működtetik a program egészét. Napjaink elterjedt felhasználói felületei az ablak (windows) alapú, eseményvezérelt felületek. Az ilyen rendszerekkel igen könnyen és gyorsan készíthetünk szabványos ablakvezérelt programokat. A képernyőképek megtervezése inkább egy egyszerűbb rajzolóprogram használatához hasonlítható. A szabványos modulokból (gombok, ablakok, menük, vezérlőelemek), rendkívül látványosra készíthetjük a programjainkat. Ezek a rendszerek általában használják az operációs rendszer beépített szolgáltatásait is, mint például a mentés, nyomtatás, színkezelés, vezérlőgombok, stb. A programozási nyelvek közül ilyen rendszert használ többek közt a Delphi, C#, Visual Basic. Multimédia fejlesztő rendszerekben pedig a Director és Flash szintén ilyen felületen dolgozik. Az ilyen rendszerekben a gép és a felhasználó közötti kommunikáció a megszokott ablakos rendszeren keresztül történik. A programozónak a különböző objektumok mögötti tartalmat kell leprogramoznia, vagyis a hozzájuk tartozó eseményeket! Az eseményvezéreltség így itt arra utal, hogy az algoritmus szekvenciáját nem a program, hanem a felhasználó határozza meg, aki minden elemi beavatkozás után sok különböző lehetőség közül választhat. Ez azt jelenti, hogy az eseményvezérelt felhasználói felületeket minden pillanatban többféle felhasználói beavatkozásra fel kell készíteni. A program futása során gyakorlatilag a felhasználó az input eszközökön keresztül (pl. egér, billentyűzet) adhatja ki a program számára a megfelelő parancsokat. Ezeket a rendszer a kiadás sorrendjében dolgozza fel. Tehát a programrészek futási sorrendje bizonyos szinten a felhasználó által vannak definiálva. Nagy előnye az ilyen rendszereknek, hogy olyan szabványos felületet lehet a segítségükkel kialakítani, ami a felhasználóknak ismerős, így könnyen el tudnak benne boldogulni. Ezáltal a szabványos modulok használata a programok elterjedését is segíti. A kommunikáció másik irányát tekintve (output), szintén hatalmas előnyökkel találkozhatunk. A grafikus megjelenítés lehetővé teszi nagyfelbontású képek, grafikák 6

egyszerű és gyors megjelenítését különösebb grafikai ismeretek nélkül. Könnyen lejátszhatunk különböző formátumú filmeket. A program részeként egyszerűen beépíthetünk hang és zene részleteket. A hardver eszközök kezelését pedig az operációs rendszer elvégzi a programozó helyett. Objektumorientált megközelítésben: Az ablakokhoz egy osztályt rendelünk. Az közös tulajdonságokat érdemes egy közös alaposztályban összefoglalni, amely minden egyes beavatkozásra valamilyen alapértelmezés szerint reagál, és az összes output funkciót biztosítja. Az alkalmazásokban szereplő specifikus ablakok ennek a közös alapablaknak a származtatott változatai. A származtatott ablakokban csak azon reakciókat megvalósító tagfüggvényeket kell újradefiniálni, melyeknek az alapértelmezéstől eltérő módon kell viselkedniük. Az output funkciókat nem kell definiálni a származtatott ablakban, hiszen azokat az alapablaktól automatikusan örökli. Tehát ezzel a rendszerrel egy elég összetett objektum orientált rendszert tudunk kiépíteni. Néhány ilyen rendszert kicsit részletesebben is bemutatunk: 1. Programozási nyelvek: Delphi: Alapvetően a PASCAL nyelv utasításkészletére épülő eseményvezérelt objektum orientált programnyelv. A használata gyorsan elsajátítható, ha valaki már rendelkezik valamely más strukturált nyelv ismeretével. A BORLAND cég terméke. Alapvetően Windows operációs rendszer alá készült, de KYLIX néven Linuxos változata is létezik. Az egyik legelterjedtebb nyelv az oktatásban. 1. ábra A Delphi alapképernyő 7

Visual Basic: A Microsoft cég terméke, amit kifejezetten Windows alkalmazások fejlesztéséhez adott ki. Használata gyorsan megtanulható. Alapvetően a Basic nyelv utasításkészletére épít, de nagy szabadságot biztosít a programozónak a saját ötletek megvalósítására. 2. ábra Visual Basic képernyő Java: A Java egy általános célú, objektumorientált programozási nyelv, amelyet a Sun Microsystems fejleszt a kezdetektől fogva. A nyelv a C programozási nyelv alapjaira épít, de attól sok mindenben lényegesen eltér és bizonyos helyeken sokkal egyszerűbb. A legnépszerűbb a netes és mobil alkalmazások piacán. A Sun Microsystem erősen levédte a nyelvét jogilag és a Microsofttal szemben is több pert nyert már emiatt. 3. ábra Java fordító 8

C#: A Microsoft fejlesztése. Alapjául a C++ és a Java szolgált. A Sun Microsystem ezért beperelte a Microsoftot és el kellett hagyniuk a Java részeket belőle. A későbbiekben innen fejlesztették ki a.net rendszerüket is. A C# főleg azoknak való, akik gyorsan szeretnének látványos eredményeket elérni, akár minimális programozói tehetséggel és tudással. 4. ábra C# képernyője 9

2. Multimédia fejlesztő rendszerek: Flash: Jelenleg az Adobe cég termékei közé tartozik. Megjelenésekor forradalminak számított, mert egy programban ötvözi a vektoros grafika és animáció készítő programok előnyeit. Segítségével weboldalak, animációk, képek, filmek és különféle mobil tartalmak és programok is készíthetők. Igen nagy szabadságot ad a programozónak grafikai téren. Egy ügyes grafikus és programozó nagyon látványos tartalmat tud vele készíteni. A Flashben való munka alapvetően egy időszalagon (Timescore) történik, ahol az eseményeket le kell programoznunk. Az eseményeket pedig vagy valamelyik objektumhoz, vagy egy időponthoz tudjuk rendelni. 5. ábra Flash képernyő Director: Szintén az Adobe cég terméke jelenleg, bár a Flashez hasonlóan a Macromédia vállalat terméke volt addig, amíg azt az Adobe fel nem vásárolta. A Director kifejezetten multimédia tervező és fejlesztő rendszer. Használata sokban hasonlít a Flashez, de mégis számos eltérés is van köztük. Itt is egy tipikus eseményorientált fejlesztő rendszerrel találjuk magunkat szemben. Az eseményeket itt szintén egy időponthoz, vagy objektumhoz tudjuk rendelni. Az objektumokat, vagy más néven szereplőket beimportálhatjuk és meg is szerkeszthetjük programon belül. A kész munkákat többféle formátumban menthetjük, de teljesen önállóan futtatható állományokat is készíthetünk benne. 10

6. ábra Director képernyő Összefoglalás: Milyen jellemzői vannak az objektum orientált rendszereknek? Jellemezze a tulajdonságokat! Mondjon pár példát az objektumok használatára! Mit jelent az eseményvezérlés? Milyen eseményvezérelt rendszereket ismer? TANULÁSIRÁNYÍTÓ Ha szeretnénk megtanulni a fent ismertetett anyagot, akkor először az alapfogalmakkal kell tisztában lennünk. Ezek elsajátítása nélkül nem léphetünk tovább, mert a későbbiekben ezekre folyamatosan hivatkozunk. A fenti részben bemutatott rendszerek idő és helyhiány miatt csak bevezető jellegűek voltak. Ha valaki ezeket az alapokat elsajátította és szeretne jobban megismerkedni valamelyik rendszerrel, akkor érdemes szakkönyvekben, vagy pedig egy tanfolyamon részletesebben megismerkednie a témával. A tanulás során javaslok egy olyan sorrendet betartani, ami a tananyag ismertetésekor is történt. Ha tisztában vagyunk az alapfogalmakkal és a leíró rendszerekkel, akkor érdemes gyakorolni a használatukat pár feladaton keresztül, ami a következő részben megtalálható lesz! 11

12

ÖNELLENÖRZŐ FELADATOK Ebben a részben találunk néhány feladatot, ami segít elmélyíteni a fenti ismereteket. A feladatokat itt kell megoldani a kijelölt helyen. Segítségképpen nyugodtan lapozzunk vissza kezdetben a tananyaghoz, de az lenne a végső cél, hogy teljesen önállóan tudjuk megoldani a feladatokat! 1. feladat Készítsen egy programrészletet, ahol deklarál egy osztályt, ami gépkocsik adatait tartja nyilván. Gyűjtse össze, milyen adatokra lehet szüksége! 13

2. feladat Készítsen egy programrészletet, ahol az imént deklarált osztályhoz készít egy alosztályt a használt gépkocsik részére. Milyen tulajdonságokat örököltetne a szülő osztályból és mikkel egészítené ki azokat? 14

3. feladat Készítsen egy programrészletet, ahol az imént deklarált osztályhoz készít egy alosztályt a tehergépkocsik részére. Milyen tulajdonságokat örököltetne a szülő osztályból és mikkel egészítené ki azokat? 15

MEGOLDÁSOK 1. feladat Tgepkocsi = class Típus: String; Gyártmány: String; Szín: String; Cm3: integer; Ár: longint; Rendszám:String; end; 16

2. feladat Thasznaltkocsi = class (Tgepkocsi) Évjárat:integer; Futtottkm:longint; End; 17

3. feladat Tteherkocsi = class (Tgepkocsi) Teherbírás:longint; Össztömeg:longint; End; 18

IRODALOMJEGYZÉK FELHASZNÁLT IRODALOM KUROS, A. G. : Felsőbb algebra. Budapest (Tankönyvkiadó) 1978. KNUTH, Donald, E.: A számítógép-programozás művészete I-III. Budapest (Műszaki) 1987. OBÁDOVICS J. Gyula: Matematika. Budapest (Műszaki) 1978. REIMANN József: Matematika. Budapest 1982. WIRTH, Niklaus: Algoritmusok + Adatstruktúrák = Programok. Budapest (Műszaki) 1982. 19