Programozás módszertan p.1/46

Save this PDF as:
 WORD  PNG  TXT  JPG

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Programozás módszertan p.1/46"

Átírás

1 Programozás módszertan Öröklődés Pere László PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA ÉS ÁLTALÁNOS TECHNIKA TANSZÉK MAGYAR TUDOMÁNYOS AKADÉMIA SZÁMÍTÁSTECHNIKAI ÉS AUTOMATIZÁLÁSI KUTATÓINTÉZET ELEARNING OSZTÁLY Programozás módszertan p.1/46

2 Bevezetés Programozás módszertan p.2/46

3 Általános vs. speciális Az absztrakció folyamatára nem csak az absztrakt tárgyak (pl. asztal) létrehozása, hanem a köztük megfigyelhető viszonyok feltérképezése is jellemző (pl. tárgy, bútor, asztal, íróasztal és tárgy, jármű, személygépkocsi). Az absztrakció során egy hierarchiát hozunk létre az absztrakt tárgyakból. A hierarchikus rendszerben az általánostól a speciálisig haladva az egyes absztrakt tárgyak rendelkeznek az előző tárgy összes tulajdonságaival, azokat bővítik, finomítják, specializálják. Programozás módszertan p.3/46

4 Öröklődés Az objektumorientált módszertan az absztrakt tárgyak modellezésére az osztályokat használja. Az absztrakció során az absztrakt tárgyakból létrehozott hierarchiát az objektumorientált programozás során az osztályok közt létrehozott hierarchiával modellezhetjük. Az osztályok közt létrehozott hierarchiában az általánostól a speciálisig haladunk, a rákövetkező osztály örökli az előző osztály adattagjait és metódusait. Programozás módszertan p.4/46

5 Ismétlés Objektum alapú nyelvek: támogatják az objektumok létrehozását, de nem ismerik az osztály fogalmát. Osztály alapú nyelvek: támogatják az osztályok létrehozását, de a köztük lévő viszonyokat nem ábrázolják. Objektumorientált nyelvek: támogatják az osztályok közti viszonyok ábrázolását az öröklődés eszközével. Csak azokat a nyelveket nevezhetjük objektumorientált nyelveknek, amelyek az osztályok közti viszonyokat az öröklődés eszközével képesek kezelni! Programozás módszertan p.5/46

6 Elnevezések Az osztály létrehozásakor meghatározhatjuk, hogy mely létező osztály (vagy osztályok) tulajdonságait örökölje az új osztály. Az öröklő osztályt örökösnek, az öröklött tulajdonságokat hordozó osztályt szülőnek vagy ősnek nevezzük. A szülő mindazon osztályok ősszülője, amelyeknek az örökös a szülője vagy ősszülője. Az osztály az összes ősszülőjének leszármazottja. Programozás módszertan p.6/46

7 Polimorfizmus Polimorfizmus (többalakúság): az objektumorientált programozási nyelvek típusrendszere úgy van kialakítva, hogy mindazon helyeken, ahol a szülő vagy az ősszülő szerepelhet, szerepelhet az örökös is. Példa: Ha egy függvény képes az állat osztályba tartozó objektumot kezelni, képes a leszármazottként létrehozott emlős és méhlepényes emlős osztály objektumait is kezelni. A polimorfizmus az ellenkező irányban nem érvényes! Programozás módszertan p.7/46

8 Specializáció Az öröklődés során az általánostól a speciális irányába haladunk. Ezt a legtöbbször úgy tesszük, hogy a szülő osztályt új attribútumokkal (adattag, metódus) bővítjük. Példa: Az ember osztályt az alkalmazott osztályban a fizetéssel és a munkakörrel, az üzletfél osztályban az eddigi vásárlások összértékével bővítjük. Az attribútumok bővítése a típusértékhalmaz szűkítésével jár. Programozás módszertan p.8/46

9 Specializáció A specializációt támogatandó általában lehetőségünk van arra is, hogy az ősosztály valamely attribútumát (adattagját vagy metódusát) megváltoztassuk, újradefiniáljuk. Példa: A síkidom osztályban a kirajzolást végző metódus általános eszköz, a leszármazott téglalap osztály kirajzolását végző metódusa azonban már lehet egy hatékonyabb algoritmust használó speciális eszköz. Programozás módszertan p.9/46

10 Dinamikus összekapcsolás A dinamikus összekapcsolás eszköze ad lehetőséget arra, hogy az objektumot aktuális típusa szerint valamelyik ősszülő vagy a saját attribútumaival kezeljük. Példa: Ha a téglalap osztály objektumát a síkidom osztály objektumaként használjuk (polimorfizmus), akkor a téglalap osztály objektumát a síkidom osztály attribútumaival jellemezzük és kezeljük vagy a téglalap osztály attribútumaival. Programozás módszertan p.10/46

11 Többszörös öröklődés Bizonyos objektumorientált programozási nyelvek megengedik, hogy az osztálynak egyszerre több szülője, közvetlen ősosztálya legyen. Ilyen esetben az osztály minden szülőjének attribútumait örökli. A többszörös öröklődés kezelése problémákat vet fel, ha például ugyanazon a néven több szülőtől örököl az osztály attribútumot. A többszörös öröklődés igen hatékony, nagy kifejezőerejű eszköz lehet, használata azonban nem egyszerű! Programozás módszertan p.11/46

12 Öröklődés a különféle nyelvekben Programozás módszertan p.12/46

13 SIMULA 67 A SIMULA 67 volt az első programozási nyelv, amely támogatta az öröklődést, azaz a SIMULA 67 volt az első objektumorientált nyelv. A nyelv nem támogatja a többszörös öröklődést, minden osztálynak csak egy közvetlen ősosztálya lehet! Programozás módszertan p.13/46

14 Smalltalk A Smalltalk támogatja az öröklődést, így a Smalltalk is objektumorientált nyelvnek tekinthető. Programozás módszertan p.14/46

15 C++ A C++ nyelv támogatja az öröklődést, így objektumorientált nyelvnek tekinthető. A C++ nyelvben megengedett a többszörös öröklődés, egy osztálynak több közvetlen ősosztálya is lehet. Programozás módszertan p.15/46

16 Object Pascal Az Object Pascal támogatja az öröklődést az osztályok közt. A nyelv csak olyan osztályok közt teszi lehetővé a többszörös öröklődést, amelyek: nem rendelkeznek egyetlen adattaggal sem a bennük definiált metódusoknak nincsen törzsük. Az ilyen osztályokat interfészeknek hívjuk. Programozás módszertan p.16/46

17 Eiffel Az Eiffel programozási nyelv támogatja az öröklődést és a többszörös öröklődést is. A nyelvet használva a leszármazott osztályban csak azokat az attribútumokat definiálhatjuk újra, amelyeket az ősökben újradefiniálhatóként hoztunk létre. Programozás módszertan p.17/46

18 Java A Java nyelv támogatja az öröklődést, de a többszörös öröklődést csak az Object Pascal nyelvnél megfigyelhető esetekben teszi lehetővé. A Java nyelvben az osztály létrehozásakor megtilthatjuk, hogy az osztálynak örököse legyen. Programozás módszertan p.18/46

19 C# A C# nyelvben az öröklődés a szerzők szerint a C++ nyelvhez hasonlóan történik, valójában azonban jobban hasonlít a Java öröklési rendszerére. A C# a többszörös öröklődést csak a Java nyelvhez hasonló különleges esetekben teszi lehetővé. A C# nyelvben az osztály létrehozásakor megtilthatjuk a leszármazott létrehozását. Programozás módszertan p.19/46

20 Öröklési módok, adatrejtés Programozás módszertan p.20/46

21 Adatrejtés és öröklődés A public és a private adatrejtési módokon kívül sok nyelvben létezik a protected (védett) adatrejtési mód is. A protected adatrejtéssel létrehozott attibútumok a leszármazottban public-ként, másutt pedig private-ként viselkedik. kívül objektum leszármazott public igen igen igen protected nem igen igen private nem igen nem Figyeljük meg, hogy a leszármazott a private attribútumokat rejtett módon örökli! Programozás módszertan p.21/46

22 Öröklési módok Néhány programozási nyelv megengedi, hogy az előbbiekben bemutatott adatrejtési rendszert felülbíráljuk, azaz megváltoztassuk a öröklés hatását az adatrejtésre. Az ilyen nyelvekben felülbírálhatjuk az ős adatrejtési rendszerét, ezzel például megoldva a többszörös öröklődés problémáit. A C++ nyelv például három öröklési módot képes kezelni. Programozás módszertan p.22/46

23 Öröklési módok A C++ nyelvben három öröklési mód létezik: public Megtartja az ősök láthatósági szintjeit. private Minden örökölt attribútum rejtetté válik. protected Minden örökölt attribútum védett lesz. Bármelyik öröklési módot válasszuk, az ősben rejtettként definiált attribútumok a leszármazottban közvetlenül nem lesznek elérhetők. Az alapértelmezett öröklési mód a private. Programozás módszertan p.23/46

24 C++ öröklődés ős öröklődés leszármazott private public közvetlenül nem elérhető protected public protected public public public private private közvetlenül nem elérhető protected private private public private private private protected közvetlenül nem elérhető protected protected protected public protected protected Programozás módszertan p.24/46

25 Polimorfizmus és dinamikus kötés Programozás módszertan p.25/46

26 Helyettesíthetőség A leszármaztatott osztály objektumai bármilyen körülmények között helyettesíthetik az ősosztály objektumait. A helyettesíthetőséget többalakúságnak (polimorfizmus) is nevezzük. Meg kell jegyeznünk, hogy a polimorfizmus csak egy szemantikai eszköz, amelyet ki kell tudnunk használni. Az osztályokat úgy kell létrehoznunk, hogy a leszármaztatott osztály objektumai valóban helyettesíthessék az ősosztály objektumait. Programozás módszertan p.26/46

27 Típusellenőrzés Fontos kérdés, hogy az adott nyelv hogyan kezeli a többalakúságot, milyen módon képes a típusrendszer ellenőrizni a típusokat. Probléma: Legyen a Tárgy osztály leszármazottja a Jármű, valamint legyenek a tárgy és a jármű változók a megfelelő típusú objektumok. Akkor nyilván megengedett a tárgy = jármű értékadás, de milyen típusa lesz ezek után a tárgy változónak? Programozás módszertan p.27/46

28 Típusellenőrzés nélkül A dilemma egyik megoldása lehet, hogy kikapcsoljuk a típusellenőrzést és tetszőleges értékadást megengedünk (pl. Smalltalk). Ilyen esetben a típusrendszer hibakereső szolgáltatásairól lemondunk, a programozónak kell a típusok karbantartásáról gondoskodnia. Ez nyilván egyszerű, de szerencsétlen megoldás. Programozás módszertan p.28/46

29 Statikus/dinamikus típus Másik megoldást jelenthet a statikus és dinamikus típus megkülönböztetése. A statikus típus a változó azon típusa, amelyet a deklarációban megadtunk. A statikus típus fordítási időben ismert, ellenőrizhető. A dinamikus típus a változó által az adott pillanatban hordozott adat típusa. A dinamikus típus megállapítására és ellenőrzésére csak futási időben van mód. Programozás módszertan p.29/46

30 Dinamikus kötés Az öröklődés során lehetővé tesszük, hogy az egyes leszármazottnál a metódusok implementációja és/vagy specifikációja különbözzön. Kérdés, hogy a polimorfizmus kihasználása esetén melyik metódust használjuk: az ős, vagy a leszármazott metódusát használjuk az ősnek megfelelő statikus és a leszármazottnak megfelelő dinamikus típusú változó esetében? A dinamikus összekapcsolás lehetővé teszi, hogy a változó dinamikus típusa alapján meghatározott implementációt használjuk. Programozás módszertan p.30/46

31 Dinamikus kötés A dinamikus kötés futási időben történik, vagyis futási időben derül ki pontosan melyik metódus hajtódjon végre. A legtöbb programozási nyelvben a dinamikusan kapcsolódó alprogramot virtuális alprogramnak (virtuális művelet, virtuális függvény) nevezzük. Programozás módszertan p.31/46

32 Statikus/dinamikus kötés Számos programozási nyelv a statikus kötést (a meghívandó metódusok fordítási időben ismertek, statikus típustól függenek) és a dinamikus kötést is támogatják. Az ilyen nyelvek esetében a programozó határozhatja meg, hogy statikus vagy dinamikus kötést használ az adott esetben. Általában azoknál a programozási nyelveknél, amelyeket eredetileg is objektumorientált nyelvként terveztek, a dinamikus kötés az alapértelmezett. Programozás módszertan p.32/46

33 C++ A C++ nyelv esetében a dinamikus kötésre a virtual kulcsszó segítségével van módunk. A C++ nyelvben tehát a statikus kötés az alapértelmezett. Az ősosztálybeli objektumok értékül felvehetik a leszármazott objektumokat, de ha nem pointereket vagy referenciákat használunk, a virtuális metódusok is statikus kötéssel kapcsolódnak. Programozás módszertan p.33/46

34 C++ A leszármazott a metódusok csak korlátozott formában definiálhatja újra: A metódusok paraméterlistája meg kell, hogy egyezzen az ősben és a leszármazottban. A leszármazott metódusának visszatérési értéke az ős metódusának visszatérési értékével megegyező vagy az ős metódus visszatérési értékének leszármazottja kell, hogy legyen. Ha ezeket a szabályokat nem tartjuk be, a leszármazott metódusa az ős metódusának túlterhelése lesz, nem pedig virtuális függvény. Programozás módszertan p.34/46

35 Object Pascal Az Object Pascalban a metódusok referenciáira érvényes a polimorfizmus. A nyelvben a statikus kötés az alapértelmezett, dinamikus kötést a virtual kulcsszóval valósíthatunk meg. Programozás módszertan p.35/46

36 Java A Java nyelvben minden változó objektumok referenciája, így az objektumorientált programozás támogatása sokkal jellemzőbb az előző két nyelvnél. A polimorfizmus és a dinamikus kötés az alapértelmezett viselkedés. Programozás módszertan p.36/46

37 C# A C# programozási nyelvben az objektumokat referenciákon keresztül használjuk. A nyelv támogatja a statikus és a dinamikus összekapcsolást is, a dinamikus összekapcsoláshoz a virtual kulcsszó használata szükséges. Programozás módszertan p.37/46

38 Az ős metódusai A programozás során szükségünk lehet arra, hogy az ősosztály metódusait hívjuk. A leszármaztatott osztály metódusaiban például építhetünk az ősosztály hasonló szerepet betöltő metódusaira tovább finomítva, specializálva azok eredményeit. Hogyan készítsünk szenes bablevest? Készítsünk egy bablevest és helyezzünk el benne némi brikettet... Programozás módszertan p.38/46

39 Az ős metódusai Azoknál a programozási nyelveknél, ahol a leszármazottnak csak egyetlen őse lehet (egyszeres öröklődés) általában elegendő egy kulcsszóval jelezni, hogy az ős metódusát szeretnénk meghívni. A többszörös öröklődést is támogató nyelvek esetében általában valamelyik ős nevével minősítjük a metódushívást. Programozás módszertan p.39/46

40 Új metódusok A leszármazott osztályban a specializáció során új metódusokat vezethetünk be. Kérdés, hogy a őstípusnak megfelelő statikus típusú, a leszármaztatottnak megfelelő dinamikus típusú objektum esetén megengedhetjük-e azoknak a metódusoknak a hívását, amelyek az ősben nem, csak a leszármazottban vannak jelen? Programozás módszertan p.40/46

41 Új metódusok A programozási nyelvek jelentős hányada (a C++ is), a hívható metódusok listáját a változó statikus típusa alapján határozza meg, vagyis nem hívhatók olyan metódusok, amelyek csak a dinamikus típusban meghatározott osztályban léteznek. Ez egyszerűen biztonságosabb így. Programozás módszertan p.41/46

42 Absztrakt osztályok Programozás módszertan p.42/46

43 Absztrakt osztályok A polimorfizmus és dinamikus kötés segítségével lehetőségünk nyílik arra, hogy olyan ősosztályokat hozzunk létre, amelyekben még nem döntünk a konkrét megvalósításról. Az ilyen osztályokat absztrakt osztályoknak nevezzük. Az absztrakt osztályok absztrakt metódusokat tartalmaznak, amelyeknek nincsen törzsük, csak a leszármazottakban implementáljuk őket. Programozás módszertan p.43/46

44 Absztrakt osztályok Az absztrakt osztályokból általában nem készíthetünk objektumokat, azokat csak a leszármazottaikon keresztül használhatók. Az absztrakt osztályoknak általában lehetnek absztrakt leszármazottaik is, így az implementációt fokozatosan végezhetjük el. Absztrakt osztályokat általában nagyobb szoftverprojekt, mély öröklési hierarchia esetén használunk. Programozás módszertan p.44/46

45 Ajánlott irodalom Programozás módszertan p.45/46

46 Ajánlott irodalom [2] NYÉKYNÉ GAIZLER JUDIT (szerk.): Programozási nyelvek, Kiskapu (2003), ISBN: Programozás módszertan p.46/46

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

Java programozási nyelv 5. rész Osztályok III. Java programozási nyelv 5. rész Osztályok III. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/20 Tartalomjegyzék

Részletesebben

Már megismert fogalmak áttekintése

Már megismert fogalmak áttekintése Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése Eseménykezelési módszerek 2 Már megismert fogalmak

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 2. rész Öröklés és többalakúság Nemvirtuális metódusok, elrejtés Virtuális metódusok, elrejtés Típuskényszerítés, az is és as operátorok Absztrakt osztályok, absztrakt

Részletesebben

Programozási alapismeretek 4.

Programozási alapismeretek 4. Programozási alapismeretek 4. Obejktum-Orientált Programozás Kis Balázs Bevezetés I. Az OO programozási szemlélet, egy merőben más szemlélet, az összes előző szemlélettel (strukturális, moduláris, stb.)

Részletesebben

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

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

JAVA PROGRAMOZÁS 2.ELŐADÁS

JAVA PROGRAMOZÁS 2.ELŐADÁS Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 2.ELŐADÁS 2014-2015 tavasz Tömbök, osztályok, objektumok, konstruktorok Tömbök 2 Referencia típusú változó Elemtípus Primitív Referencia: osztály,

Részletesebben

Öröklés és Polimorfizmus

Öröklés és Polimorfizmus Öröklés és Polimorfizmus Egy létező osztályból egy (vagy több) újat készítünk A létező osztályt ősnek, az újakat utódnak nevezzük Az utódok öröklik az ős minden tagját Az utódok az öröklött tagokat újakkal

Részletesebben

Programozás III. - NGB_IN001_3

Programozás III. - NGB_IN001_3 Programozás III. - az objektumorientált programozásba Varjasi Norbert Széchenyi István Egyetem Informatika Tanszék Programozás III. - 1. el adás institution-log Tartalom 1 El adások és gyakorlatok Zárthelyi

Részletesebben

OOP. Alapelvek Elek Tibor

OOP. Alapelvek Elek Tibor OOP Alapelvek Elek Tibor OOP szemlélet Az OOP szemlélete szerint: a valóságot objektumok halmazaként tekintjük. Ezen objektumok egymással kapcsolatban vannak és együttműködnek. Program készítés: Absztrakciós

Részletesebben

Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu

Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu Programozás III. Varjasi Norbert varjasin@sze.hu 1 A java virtuális gép (JVM) Képzeletbei, ideális számítógép. Szoftveresen megvalósított működési környezet. (az op. rendszer egy folyamata). Feladata:

Részletesebben

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

Programozás. Objektum Orientált Programozás (OOP) Alapfogalmak. Fodor Attila Programozás Objektum Orientált Programozás (OOP) Alapfogalmak Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. február 18.

Részletesebben

C++ programozási nyelv

C++ programozási nyelv C++ programozási nyelv Gyakorlat - 8. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. november A C++ programozási nyelv Soós Sándor 1/12 Tartalomjegyzék Miért

Részletesebben

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.

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. 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. Az osztály egy olyan típus leíró struktúra, amely tartalmaz adattagokat

Részletesebben

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 VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1 Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum

Részletesebben

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

Absztrakció. Objektum orientált programozás Bevezetés. Általános Informatikai Tanszék Utolsó módosítás: Objektum orientált programozás Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 03. 04. OOPALAP / 1 A program készítés Absztrakciós folyamat, amelyben a valós világban

Részletesebben

Objektumorientált szoftverfejlesztés alapjai

Objektumorientált szoftverfejlesztés alapjai Objektumorientált szoftverfejlesztés alapjai Gyakorlatorientált szoftverfejlesztés C++ nyelven Visual Studio Community fejlesztőkörnyezetben @Katona József Kővári Attila Lektorálta: Dr. Fauszt Tibor DOI:

Részletesebben

C++ programozási nyelv

C++ programozási nyelv C++ programozási nyelv Gyakorlat - 13. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. december A C++ programozási nyelv Soós Sándor 1/10 Tartalomjegyzék Objektumok

Részletesebben

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

Programozás I. 5. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar Programozás I. 5. gyakorlat 1 Objektumorientáltság Egységbezárás és információ elrejtése (absztrakt adattípus) Adatok és rajtuk végzett műveletek egységbezárása (osztályok írása, múlt hét) Öröklődés Polimorfizmus

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 2. rész Öröklés és többalakúság Nemvirtuális metódusok, elrejtés Virtuális metódusok, elrejtés Típuskényszerítés, az is és as operátorok Absztrakt osztályok, absztrakt

Részletesebben

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

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás 2015-2016 Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS 2015-2016 Objektumorientált programozás OOP PHP-ben 2 A PHP az 5.0-as verziójától megvalósítja az OO eszközrendszerét OO eszközök:

Részletesebben

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

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*; Java 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. ( Előfeltétel 12. Tétel ) Az osztály egy olyan típus leíró struktúra, amely

Részletesebben

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

Alkalmazott Modul III 6. előadás. Objektumorientált programozás: öröklődés és polimorfizmus Eötvös Loránd Tudományegyetem Természettudományi Kar Alkalmazott Modul III 6. előadás Objektumorientált programozás: öröklődés és polimorfizmus 2011.10.24. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

Részletesebben

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

Interfészek. Programozás II. előadás.  Szénási Sándor. Interfészek előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Polimorfizmus áttekintése Interfészek Interfészek alkalmazása

Részletesebben

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

OOP #1 (Bevezetés) v1.0 2003.03.07. 18:39:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. OOP #1 (Bevezetés) v1.0 2003.03.07. 18:39:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_01-1 - E jegyzet másolata

Részletesebben

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

Bevezetés a programozásba előadás: Öröklődés Bevezetés a programozásba 2 5. előadás: Öröklődés emlékeztető Tagfüggvény struct koord { double x,y,r; void set(double ux, double uy) { x=ux; y=uy; r=sqrt(x*x+y*y); } Használat: koord k; k.set(4,5); Egységbezárás

Részletesebben

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

Osztálytervezés és implementációs ajánlások Osztálytervezés és implementációs ajánlások Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 04. 24. Osztálytervezés és implementációs kérdések OTERV / 1 Osztály tervezés Egy nyelv

Részletesebben

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.

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. 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. Programozás III Az egyszerűség kedvéért mindegyiket a nevük alapján regisztráljuk,

Részletesebben

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

Osztálytervezés és implementációs ajánlások Osztálytervezés és implementációs ajánlások Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 04. 24. Osztálytervezés és implementációs kérdések OTERV / 1 Osztály tervezés Egy nyelv

Részletesebben

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

Bevezetés, a C++ osztályok. Pere László Programozás módszertan II. p. Programozás módszertan II. Bevezetés, a C++ osztályok Pere László (pipas@linux.pte.hu) PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA ÉS ÁLTALÁNOS TECHNIKA TANSZÉK

Részletesebben

Osztály öröklődés. Öröklődés és polimorfizmus. Programozás II. előadás. http://nik.uni-obuda.hu/prog2 Szénási Sándor. szenasi.sandor@nik.uni-obuda.

Osztály öröklődés. Öröklődés és polimorfizmus. Programozás II. előadás. http://nik.uni-obuda.hu/prog2 Szénási Sándor. szenasi.sandor@nik.uni-obuda. Osztály öröklődés Öröklődés és polimorfizmus előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Öröklődés Polimorfizmus Osztályok

Részletesebben

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

Abstract osztályok és interface-ek. 7-dik gyakorlat Abstract osztályok és interface-ek 7-dik gyakorlat Abstract metódusok és osztályok Az OO fejlesztés során olyan osztályokat is kialakíthatunk, melyeket csak továbbfejlesztésre, származtatásra lehet használni,

Részletesebben

OOP és UML Áttekintés

OOP és UML Áttekintés OOP és UML Áttekintés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) OOP és UML Áttekintés 2013 1 / 32 Tartalom jegyzék 1 OOP Osztály Öröklődés Interfész, Absztrakt Osztály Kivétel kezelés

Részletesebben

A szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok

A szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok A szemantikus elemzés helye Forrásprogram Forrás-kezelő (source handler) Lexikális elemző (scanner) A szemantikus elemzés feladatai Fordítóprogramok előadás (A, C, T szakirány) Szintaktikus elemző (parser)

Részletesebben

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

Virtuális függvények (late binding) Virtuális függvények (late binding) Miskolci Egyetem Általános Informatikai Tanszék Virtuális függvények CPP5 / 1 Azonos nevű függvények megkülönböztetése paraméterszignatúra (függvény overloading) - egy

Részletesebben

Objektumorientált paradigma és a programfejlesztés

Objektumorientált paradigma és a programfejlesztés Objektumorientált paradigma és a programfejlesztés Vámossy Zoltán vamossy.zoltan@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Ficsor Lajos (Miskolci Egyetem) prezentációja alapján Objektumorientált

Részletesebben

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat Kivételkezelés, beágyazott osztályok Nyolcadik gyakorlat Kivételkezelés Nem minden hibát lehet fordítási időben megtalálni Korábban (pl. C-ben) a hibakezelést úgy oldották meg, hogy a függvény hibakódot

Részletesebben

Objektumorientált paradigma és programfejlesztés Bevezető

Objektumorientált paradigma és programfejlesztés Bevezető Objektumorientált paradigma és programfejlesztés Bevezető Vámossy Zoltán vamossy.zoltan@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Ficsor Lajos (Miskolci Egyetem) prezentációja alapján

Részletesebben

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

Objektum orientált programozás (Object Oriented Programming = OOP) Objektum orientált programozás (Object Oriented Programming = OOP) Ajánlott irodalom: Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai Dr. Kondorosi Károly, Dr. László Zoltán, Dr.

Részletesebben

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

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék Speciális adattagok és tagfüek Miskolci Egyetem Általános Informatikai Tanszék CPP7 / 1 Statikus adattagok Bármely adattag lehet static tárolási osztályú A statikus adattag az osztály valamennyi objektuma

Részletesebben

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni? A "java Villa -v" parancs jelentése: A java interpreter elindítja a Villa osztály statikus main metódusát, és átadja neki paraméterként a "-v" stringet. A java interpreter elindítja először a Villa osztály

Részletesebben

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title; PHP5 objektumok 1 Osztályok class, new book.php: construct () destruct() $b=new Book(); törlés: $b=null; vagy unset ($b); -elnevezési konvenciók private $isbn; public $title; function

Részletesebben

Programozási technológia 1.

Programozási technológia 1. ngleton Sin ELTE-IK + st: boo ol Programozási technológia 1. 2. gyakorlat: Programozási paradigmák, az objektumorientált tált programozás Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

Részletesebben

OOP #14 (referencia-elv)

OOP #14 (referencia-elv) OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_14-1 - E jegyzet

Részletesebben

Alkalmazott modul: Programozás 11. előadás. Objektumorientált programozás: öröklődés

Alkalmazott modul: Programozás 11. előadás. Objektumorientált programozás: öröklődés Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás 11. előadás Objektumorientált programozás: öröklődés Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

Részletesebben

Programozás. C++ osztályok. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.

Programozás. C++ osztályok. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein. Programozás C++ osztályok Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. április 8. Csak bázisosztályként használt/értelmezhető

Részletesebben

Java VII. Polimorfizmus a Java nyelvben

Java VII. Polimorfizmus a Java nyelvben Java VII. Polimorfizmus a Java nyelvben Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 19. Java VII. Polimorfizmuss JAVA7 / 1 A kötés (binding( binding) ) fogalma Kötés (binding)

Részletesebben

C++ programozási nyelv

C++ programozási nyelv C++ programozási nyelv Gyakorlat - 9. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. november A C++ programozási nyelv Soós Sándor 1/15 Tartalomjegyzék Hozzáférési

Részletesebben

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

1. Bevezetés A C++ nem objektumorientált újdonságai 3 Előszó xiii 1. Bevezetés 1 2. A C++ nem objektumorientált újdonságai 3 2.1. A C és a C++ nyelv 3 2.1.1. Függvényparaméterek és visszatérési érték 3 2.1.2. A main függvény 4 2.1.3. A bool típus 4 2.1.4.

Részletesebben

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

Objektum orientált programozás (Object Oriented Programming = OOP) Objektum orientált programozás (Object Oriented Programming = OOP) Ajánlott irodalom: Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai Dr. Kondorosi Károly, Dr. László Zoltán, Dr.

Részletesebben

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

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok Bevezetés a programozásba II 8. Előadás: Osztályok, objektumok, osztályszintű metódusok vektor.h #ifndef VEKTOR_H #define VEKTOR_H class Vektor { int meret, *mut; public: Vektor(int meret); int szamlal(int

Részletesebben

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

ISA szimulátor objektum-orientált modell (C++) Budapesti Műszaki és Gazdaságtudományi Egyetem ISA szimulátor objektum-orientált modell (C++) Horváth Péter Elektronikus Eszközök Tanszéke 2015. február 12. Horváth Péter ISA szimulátor objektum-orientált

Részletesebben

Adatstruktúrák, algoritmusok, objektumok

Adatstruktúrák, algoritmusok, objektumok Adatstruktúrák, algoritmusok, objektumok 3. Az objektumorientált paradigma alapelemei Objektum Osztály Példányosítás A konstruktor és a destruktor Osztályok közötti kapcsolatok Miklós Árpád, BMF NIK, 2006

Részletesebben

Java és web programozás

Java és web programozás Budapesti M szaki Egyetem 2013. szeptember 25. 3. El adás User public class User { private String realname_; private String nickname_; private String password_; public User(String realname, String nickname)

Részletesebben

Szoftvertechnológia 4. előadás. Objektumorientált tervezés: általánosítás. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Szoftvertechnológia 4. előadás. Objektumorientált tervezés: általánosítás. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar Eötvös Loránd Tudományegyetem Informatikai Kar Szoftvertechnológia 4. előadás Objektumorientált tervezés: általánosítás Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Példa Feladat:

Részletesebben

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

Programozás. Bevezetés. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék Programozás Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. február 11. Tantárgy célja, szükséges ismeretek Tantárgy célja,

Részletesebben

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

Az élet szép, környezetünk tele van fákkal, virágokkal, repdeső madarakkal, vidáman futkározó állatokkal. Objektumorientált programozás Az élet szép, környezetünk tele van fákkal, virágokkal, repdeső madarakkal, vidáman futkározó állatokkal. Ez a nem művészi értékű, de idillikus kép azt a pillanatot mutatja,

Részletesebben

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

C++ programozási nyelv Struktúrák a C++ nyelvben C++ programozási nyelv Struktúrák a C++ nyelvben Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. szeptember A C++ programozási nyelv Soós Sándor 1/37 Bevezetés A

Részletesebben

Programozás II gyakorlat. 6. Polimorfizmus

Programozás II gyakorlat. 6. Polimorfizmus Programozás II gyakorlat 6. Polimorfizmus Típuskonverziók C-ben: void * ptr; int * ptr_i = (int*)ptr; Ez működik C++-ban is. Használjuk inkább ezt: int * ptr_i = static_cast(ptr); Csak egymással

Részletesebben

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

OOP alapok Egy OOP nyelvet három fontos dolog jellemez. egységbezárás ( encapsulation objektumoknak öröklés ( inheritance 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.

Részletesebben

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

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum

Részletesebben

SZOFTVERFEJLESZTÉSI TECHNOLÓGIÁK

SZOFTVERFEJLESZTÉSI TECHNOLÓGIÁK SZOFTVERFEJLESZTÉSI TECHNOLÓGIÁK Programnyelv fa: A nyilak irányába hatnak egymásra a nyelvek. Az ALGOL 60 előtt is voltak nyelvek (pl.: Fortran). Az aláhúzottak objektumorientált nyelvek (későbbiekben

Részletesebben

Objektumorientált programozás C# nyelven II.

Objektumorientált programozás C# nyelven II. Objektumorientált programozás C# nyelven II. Öröklés és többalakúság Nemvirtuális metódusok, elrejtés Virtuális metódusok, elrejtés Típuskényszerítés, az is és as operátorok Absztrakt osztályok, absztrakt

Részletesebben

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java Függvények, csomagok Csomagok Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges számú osztályt tartalmazhat Pl.: java.util.scanner Könyvtárhierarhiát fed: Pl.: java/util/scanner.java Célja:

Részletesebben

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

Bánsághi Anna 2014 Bánsághi Anna 1 of 33 IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 7. ELŐADÁS - ABSZTRAKT ADATTÍPUS 2014 Bánsághi Anna 1 of 33 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív

Részletesebben

ANALYSIS PATTERNS MARTIN FOWLER ANALYSIS PATTERNS. Általános ismertető és Accountability Patterns

ANALYSIS PATTERNS MARTIN FOWLER ANALYSIS PATTERNS. Általános ismertető és Accountability Patterns MARTIN FOWLER ANALYSIS PATTERNS Általános ismertető és Accountability Patterns ELTE, 2010. 11. 25. Herczeg István iherczeg@inf.elte.hu 1 Mi az a 'ANALYSIS PATTERN'? Mi az a minta? MF minta (pattern) definíciója:

Részletesebben

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ó

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ó 1. Öröklés Az objektum orientált tervezés fontos sarkköve, az osztályok viszonyainak a megtervezése. 1.1. Rétegelés c l a s s Address {..... c l a s s Name {..... c l a s s P e r s o n { Name name ; Address

Részletesebben

Bánsághi Anna anna.bansaghi@mamikon.net. 2014 Bánsághi Anna 1 of 31

Bánsághi Anna anna.bansaghi@mamikon.net. 2014 Bánsághi Anna 1 of 31 IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 9. ELŐADÁS - OOP TERVEZÉS 2014 Bánsághi Anna 1 of 31 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív paradigma

Részletesebben

2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése Tartalom Integrált fejlesztés Java platformon JUnit JUnit használata Tesztelési technikák Demo 2 A specifikáció alapján teszteljük a program egyes részeit, klasszikus V-modell szerint Minden olyan metódust,

Részletesebben

Objektumorientált paradigma

Objektumorientált paradigma Objektumorientált paradigma Bevezető Vámossy Zoltán vamossy.zoltan@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Objektumorientált paradigma BEVEZETŐ FOGALMAK 2/77 Bevezetés - Fogalom

Részletesebben

OO rendszerek jellemzői

OO rendszerek jellemzői OO rendszerek jellemzői Problémák forrása lehet teszteléskor: Problémák feldarabolása. Adatrejtés. Az OO rendszerek nagyszámú, egymással aktívan kapcsolatban levő, együttműködő komponensekből állnak. A

Részletesebben

III. OOP (objektumok, osztályok)

III. OOP (objektumok, osztályok) III. OOP (objektumok, osztályok) 1. Természetes emberi gondolkozás Az Objektumorientált paradigma alapelvei nagyon hasonlítanak az emberi gondolkozásra. Érdemes ezért elsőként az emberi gondolkozás elveit

Részletesebben

Programozás alapjai II. (5. ea) C++

Programozás alapjai II. (5. ea) C++ Programozás alapjai II. (5. ea) C++ analitikus és korlátozó öröklés Szeberényi Imre BME IIT M Ű E G Y T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2011.03.8. -1 - OO modellezés

Részletesebben

Programozás alapjai II. (5. ea) C++

Programozás alapjai II. (5. ea) C++ Programozás alapjai II. (5. ea) C++ analitikus és korlátozó öröklés Szeberényi Imre BME IIT M Ű E G Y T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2011.03.8. -1 - OO modellezés

Részletesebben

Bevezetés a programozásba Előadás: A const

Bevezetés a programozásba Előadás: A const Bevezetés a programozásba 2 6. Előadás: A const ISMÉTLÉS Interface - Implementation struct Particle { int x,y; unsigned char r,g,b; void rajzol(); }; }; void Particle::rajzol() { gout

Részletesebben

58. Osztály, objektum fogalma, implementációs lehetőségek(shagreen) 59. Egységbezárás (elvi háttere, gyakorlati megvalósítás) (Shagreen)

58. Osztály, objektum fogalma, implementációs lehetőségek(shagreen) 59. Egységbezárás (elvi háttere, gyakorlati megvalósítás) (Shagreen) 58. Osztály, objektum fogalma, implementációs lehetőségek(shagreen) 59. Egységbezárás (elvi háttere, gyakorlati megvalósítás) (Shagreen) 60. Öröklés (elvi háttere, gyakorlati megvalósítás) (Shagreen) 61.

Részletesebben

Magas szintű adatmodellek Egyed/kapcsolat modell I.

Magas szintű adatmodellek Egyed/kapcsolat modell I. Magas szintű adatmodellek Egyed/kapcsolat modell I. Ullman-Widom: Adatbázisrendszerek. Alapvetés. 4.fejezet Magas szintű adatmodellek (4.1-4.3.fej.) (köv.héten folyt.köv. 4.4-4.6.fej.) Az adatbázis modellezés

Részletesebben

Osztálytervezés és C++ implementációs ajánlások I.

Osztálytervezés és C++ implementációs ajánlások I. Osztálytervezés és C++ implementációs ajánlások I. Miskolci Egyetem Általános Informatikai Tanszék Osztálytervezés és implementációs kérdések I. OTERV1 / 1 Osztály tervezés Egy nyelv szabályrendszere számos

Részletesebben

I. Objektumorientált programozás

I. Objektumorientált programozás I. Objektumorientált programozás 1. Az objektumorientált programozás alapjai Objektumok és objektumosztályok A számítógépes programok közvetve vagy közvetlenül a körülöttünk lévô világ elemeihez illeszkednek,

Részletesebben

PROGRAMOZÁSMÓDSZERTAN II

PROGRAMOZÁSMÓDSZERTAN II 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.

Részletesebben

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

Számítógép és programozás 2 Számítógép és programozás 2 10. Előadás Öröklődés http://digitus.itk.ppke.hu/~flugi/ Tagfüggvény struct Particle { int x,y; unsigned char r,g,b; void rajzol() { gout

Részletesebben

Adatstruktúrák, algoritmusok, objektumok

Adatstruktúrák, algoritmusok, objektumok Adatstruktúrák, algoritmusok, objektumok 2. Az objektumorientált programozási paradigma 1 A szoftverkrízis Kihívások a szoftverfejlesztés módszereivel szemben 1. A szoftveres megoldások szerepe folyamatosan

Részletesebben

Objektumorientált programozás Java-ban

Objektumorientált programozás Java-ban Objektumorientált programozás Java-ban Objektumorientált fejlesztés Klasszikus alapszakaszok: Elemzés (analízis) specifikáció, használati esetek (use case diagramok), domain analysis Tervezés (design)

Részletesebben

Elemi Alkalmazások Fejlesztése II.

Elemi Alkalmazások Fejlesztése II. Elemi Alkalmazások Fejlesztése II. Osztályok közötti kapcsolatok öröklődés asszociáció aggregáció kompozíció 1. Feladat Készítsünk programot, amellyel testek térfogatát határozhatjuk meg, illetve megadhatjuk

Részletesebben

1) Hány byte-on tárol a C++ egy karaktert (char)? implementáció-függő ( viszont lásd 79. megjegyzés ) 1 8 4

1) Hány byte-on tárol a C++ egy karaktert (char)? implementáció-függő ( viszont lásd 79. megjegyzés ) 1 8 4 1) Hány byte-on tárol a C++ egy karaktert (char)? implementáció-függő ( viszont lásd 79. megjegyzés ) 1 8 4 2) Hány byte-on tárol a C++ egy float-ot? implementáció-függő 6 4 8 3) Hány byte-on tárol a C++

Részletesebben

Programozás módszertan p.1/110

Programozás módszertan p.1/110 Programozás módszertan Alprogramok Pere László ( ) PÉCSI EGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA ÉS ÁLTALÁNOS TECHNIKA TANSZÉK MAGYAR TUDOMÁNYOS AKADÉMIA SZÁMÍTÁSTECHNIKAI ÉS AUTOMATIZÁLÁI KUTATÓINTÉZET

Részletesebben

A TANTÁRGY ADATLAPJA

A TANTÁRGY ADATLAPJA A TANTÁRGY ADATLAPJA 1. A képzési program adatai 1.1 Felsőoktatási intézmény Babeș-Bolyai Tudományegyetem 1.2 Kar Matematika és Informatika 1.3 Intézet Magyar Matematika és Informatika 1.4 Szakterület

Részletesebben

Java III. I I. Osztálydefiníció (Bevezetés)

Java III. I I. Osztálydefiníció (Bevezetés) Java III. I I. Osztálydefiníció (Bevezetés) Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 02. 27. Java III.: Osztály definíció JAVA3 / 1 Szintaktikai jelölések A továbbiakban

Részletesebben

Programfejlesztési Modellek

Programfejlesztési Modellek Programfejlesztési Modellek Programfejlesztési fázisok: Követelmények leírása (megvalósíthatósági tanulmány, funkcionális specifikáció) Specifikáció elkészítése Tervezés (vázlatos és finom) Implementáció

Részletesebben

Programozás II gyakorlat. 7. Példák a polimorfizmus alkalmazásaira

Programozás II gyakorlat. 7. Példák a polimorfizmus alkalmazásaira Programozás II gyakorlat 7. Példák a polimorfizmus alkalmazásaira Probléma class A { public: ~A() { cout

Részletesebben

Osztály és objektum fogalma

Osztály és objektum fogalma Osztály és objektum fogalma A C++ programozási nyelv I. CPP1/ 1 Az osztály (class) class: adatok és módszerek (method) (függvények) együttese, amely absztrakt adattípusként működik. objektum: egy osztály

Részletesebben

Szerver oldali Java programozás 2007-08/II. 1. óra. Elemkönyvtárak. Elemkönyvtárak használata Saját elemkönyvtár készítése. szenasi.sandor@nik.bmf.

Szerver oldali Java programozás 2007-08/II. 1. óra. Elemkönyvtárak. Elemkönyvtárak használata Saját elemkönyvtár készítése. szenasi.sandor@nik.bmf. Szerver oldali Java programozás 2007-08/II. 1. óra Elemkönyvtárak Elemkönyvtárak használata Saját elemkönyvtár készítése szenasi.sandor@nik.bmf.hu Adatbázisok elérése Témakörök Elemkönyvtárak használata

Részletesebben

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

Bánsághi Anna 2014 Bánsághi Anna 1 of 68 IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 8. ELŐADÁS - OBJEKTUMOK, OSZTÁLYOK 2014 Bánsághi Anna 1 of 68 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív

Részletesebben

C# osztálydeníció. Krizsán Zoltán 1. .net C# technológiák tananyag objektum orientált programozás tananyag

C# osztálydeníció. Krizsán Zoltán 1. .net C# technológiák tananyag objektum orientált programozás tananyag C# osztálydeníció Krizsán Zoltán 1 Általános Informatikai Tanszék Miskolci Egyetem.net C# technológiák tananyag objektum orientált programozás tananyag Tartalom 1 Bevezetés 2 Osztály létrehozása, deníció

Részletesebben

Mi a különbség az extends és az implements között. Mikor melyiket kell használni? Comperable-t megvalósító oasztályokban össze lehet hasonlitani

Mi a különbség az extends és az implements között. Mikor melyiket kell használni? Comperable-t megvalósító oasztályokban össze lehet hasonlitani Mi a legabsztraktabb típus a JAVA-ban? Object Mikor preferált interface-ek használata a konkrét típusok helyett? Ha egy osztály több interfacet is használhasson, vagy ha fvek implementálását a az osztályra

Részletesebben

Swedish store (C#) Óbudai Egyetem, Programozás 2 Mérnök Informatikus szak, BSc Labor. Bedők Dávid 2013.03.05. v0.1

Swedish store (C#) Óbudai Egyetem, Programozás 2 Mérnök Informatikus szak, BSc Labor. Bedők Dávid 2013.03.05. v0.1 Swedish store (C#) Óbudai Egyetem, Programozás 2 Mérnök Informatikus szak, BSc Labor Bedők Dávid 2013.03.05. v0.1 Feladat A Swedish store alkalmazás egy bútoráruházat szeretne modellezni*. Az alkalmazás

Részletesebben

Objektumorientáció, objektumorientált szemlélet

Objektumorientáció, objektumorientált szemlélet Objektumorientáció, objektumorientált szemlélet Adatbáziskezelés és könyvtári rendszerszervezés 1 2014 Objektumorientált elemzés/tervezés Azt a fejlesztési szemléletet, amelyben a modellezett rendszer

Részletesebben

Gyakorlati vizsgatevékenység A

Gyakorlati vizsgatevékenység A Gyakorlati vizsgatevékenység A Szakképesítés azonosító száma, megnevezése: 481 04 0000 00 00 Web-programozó Vizsgarészhez rendelt követelménymodul azonosítója, megnevezése: 1189-06 Web-alkalmazás fejlesztés

Részletesebben

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

Inczédy György Középiskola, Szakiskola és Kollégium Nyíregyháza, Árok u. 53. TANMENET. Informatika szakmacsoport TANMENET Informatika szakmacsoport Programozási gyakorlatok III. tantárgy 12. évfolyam A osztály 2013/2014 tanév Heti óraszám: Éves óraszám: 3 óra 96 óra Készítette: Szikszai Gusztáv tanár Ellenőrizte:.

Részletesebben

Az OO paradigma. Mitől OO egy program? Objektum Osztály Öröklődés

Az OO paradigma. Mitől OO egy program? Objektum Osztály Öröklődés 2. előadás Az OO paradigma Mitől OO egy program? Objektum Osztály Öröklődés 2 A valós világ modellezése Az ember a világ megértéséhez modelleket épít Modellezési alapelvek Absztrakció az a szemléletmód,

Részletesebben