SZOFTVERFEJLESZTÉSI TECHNOLÓGIÁK
|
|
- Dénes Molnár
- 9 évvel ezelőtt
- Látták:
Átírás
1 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öviden OO nyelvek). tagadás ALGOL 60 Pascal Object Pascal Simula 67 Turbo Pascal LISP C C++ ANSI C Ada Modula 2 Flavors Smalltalk 76 Common Smalltalk 80 CLOS Objective C Ada 95 Delphi Smalltalk 72,74 Oberon Eiffel Java C# Programozási paradigmák (programozási minták, módszerek és technikák): - IMPERATÍV PROGRAMOZÁS: Az imperatív paradigma alakult ki történelmileg először. Egy imperatív programban lépésenként megadják, hogy mit kell tenni és milyen adatokkal. Konyhanyelven: egy imperatív program, olyan mint egy szakácskönyv. Először felsorolják a hozzávalókat (változók deklarálása), majd lépésekben megadják az eljárást: mit kell tenni először, hogyan kell folytatni a dolgot, esetleg ismételni kell valamely lépéseket (ciklusok), esetleg választani kell, hogyan folytassuk a munkát (elágazás). A program egy tevékenységsorozat leírása. Ide tartozó programnyelvek: C, Pascal, ADA, Modula-2, Basic nyelvek, FORTRAN, COBOL - DEKLARATÍV PROGRAMOZÁS: FUNKCIONÁLIS PROGRAMOZÁS: Középpontjában a függvények és egy átíró (redukciós) rendszer állnak. Egy funkcionális nyelvben a program a következőkből áll: típus, osztály, függvénydeklarációk, függvénydefiníciók, illetve egy kezdeti kifejezésből áll. A program végrehajtását a kezdeti kifejezés kiértékelése jelenti, amelyben tetszőleges számú akár egymásba ágyazott függvényhívás sorozat jelenhet meg. Ide tartozó programnyelvek: LISP, Miranda, Haskell, SASL (St. Andrews Standard Language) Szoftverfejlesztési Technológiák OOP v1.0 (Készítette: Girhiny Róbert) oldal 1
2 LOGIKAI PROGRAMOZÁS: A Prolog megkonstruálásával születik meg. A matematikai logika fogalom és eszközrendszerén épül fel. Egy logikai program nem más, mint egy absztrakt modellre vonatkozó állítások egy halmaza. Az állítások a modell elemeinek tulajdonságait és a közöttük lévő kapcsolatokat formalizálják. A logikai programokban a programozó felsorol (deklaratív módon megad) szabályokat és tényeket. Megad ezek után egy eldöntendő kérdést, és a programozási rendszer következtető motorja (inference engine) automatikusan kikövetkezteti a szabályok és tények feldolgozásával hogy az igaz-e vagy sem. Ide tartozó programnyelvek: Prolog, λprolog, CLACL, Fril - OBJEKTUMORIENTÁLT PROGRAMOZÁS: Alakzat Nyílt Alakzat Zárt Alakzat Poligon Ellipszis háromszög négyszög Kör négyzet téglalap Nem a műveletek megalkotása áll a középpontban, hanem az egymással kapcsolatban álló programegységek hierarchiájának megtervezése. Az objektumorientált gondolkodásmód lényegében a valós világ lemodellezésén alapul például egy hétköznapi fogalom, a poligon felfogható egy osztály (a poligonok osztályaként). A paradigma alapja az osztály. Az osztálynak vannak módszerei, attribútumai. (módszerek: eljárás, függvény; attribútum: tulajdonság). Az attribútumok az osztály statikus részét, a módszerek (funkcionális modell) a viselkedést írják le. Az osztály egy absztrakt programozási eszköz. Az OO szemlélet szerint az adatmodell és a funkcionális modell egymástól elválaszthatatlan, külön nem kezelhető. A valós világot egyetlen modellel kell leírni és ebben kell kezelni a statikus (adat) és a dinamikus (viselkedési) jellemzőket. Ez az egységbezárás elve. A poligon osztályból készíthetünk poligon objektumokat a példányosítás során. Minden poligon objektum ugyanazzokkal a tulajdonságokkal (pl.: élek száma, élek hossza stb.) és metódusokkal (pl.: megjelenítés(), terület()- kerületszámítás()) rendelkezik, mint amikkel a példányosító osztály rendelkezik (ez nem öröklődés). Az objektumorientált programozásban fontos szerep jut az úgynevezett öröklődésnek, ami az osztályok egymásból való származtatását teszi lehetővé: a poligonok osztálya származhat a zárt alakzatok osztályból, így megörökli az zárt alakzatok tulajdonságait és metódusait, valamint kibővítheti vagy felülírhatja azokat a poligon tulajdonságaival, metódusaival. Ide tartozó nyelvek: C++, Java, C#, Delphi Szoftverfejlesztési Technológiák OOP v1.0 (Készítette: Girhiny Róbert) oldal 2
3 OO (objektum orientált) paradigma rövid története - Kifejlesztik a SIMULA 67-et amelyben a nyelv definíciója új eszközrendszert tartalmaz, amely az OO paradigma alapja - Alan Kay diplomamunkájában felvázolja az OO paradigmát. - A Xerox cég elindít egy nagy projektet (személyi számítógép megtervezése és megvalósítása) A Xerox megbízza Kay-t, hogy fejlesszen hozzá nyelvet. Így születik meg a Smalltalk. Alan Kay idézete szerint: A legjobb módja, hogy megjósold a jövőt az, ha feltalálod. Nevéhez fűződik még a laptop számítógépek megálmodása és a modern grafikus felhasználói felületek. - A Smalltalk nyelv ténylegesen tartalmazza az OO paradigmát. Két probléma: 1, a Smalltalk implementációjához nincs elég hardver. 2, a szakma nem érti meg a paradigmát. Teljesen más a szemlélet. - A 80-as években a Smalltalk nyelvi paradigmává válik - A 80-as években lévő nyelveknek megjelenik egy OO változata, így jelenik meg a C++, ami nagyon sokáig meghatározó. - A 90-es évek már az OO-ról szólnak ben megjelenik a Java, a 90-es évek végére ő a meghatározó ben megjelenik a C# ami szintén OO nyelv. OO paradigma alapfogalmai: Az OO paradigma alapfogalmait egy példán keresztül fogjuk végigvezetni, a könnyebb érthetőség miatt. A példa program vázlata: Egy hipermarketet fogunk modellezni. Termékeket árulunk. Különböző típusú termékeknek különböző paramétereik vannak. A hipermarket osztály/objektum diagramja a következőképpen néz ki: «ABSTRACT» Termék - int nettó_ár + string név + string leírás + void Termék() + int getnettó() + int getbruttó() + void áremel(int érték) Alkalmazott + string név + string szem_szám - int fizetés + int getfizetés() + void setfizetés(int fizetés) + void fizetésemel(int érték) Élelmiszer Mûszaki_cikk - int nettó_ár + string név + string leírás + date lejárati_idõ + float mennyiség + void Élelmiszer() + int getnettó() + int getbruttó() + void áremel(int érték) sonka : Élelmiszer nettó_ár = 200 név = "Gépsonka" leírás = "Csomagolt húsáru" lejárati_idõ = menniyég = 100 kenyér1 : Élelmiszer nettó_ár = 170 név = "Félbarna kenyér" leírás = "Friss pékáru" lejárati_idõ = menniyég = 1000 kenyér2 : Élelmiszer nettó_ár = 340 név = "Bio kenyér" leírás = "Friss pékáru" lejárati_idõ = menniyég = int nettó_ár + string név + string leírás + int garancia_év + void Mûszaki_cikk() + int getnettó() + int getbruttó() + void áremel(int érték) + void leakcióz() + void leakcióz(float mérték) tv1 : Mûszaki_cikk nettó_ár = név = "Samsung led tv" leírás = "3D: nem" garancia_év = 2+1 tv2 : Mûszaki_cikk nettó_ár = név = "Sony led tv" leírás = "3D: igen, aktív" garancia_év = 2 Szoftverfejlesztési Technológiák OOP v1.0 (Készítette: Girhiny Róbert) oldal 3
4 OSZTÁLY (CLASS) Az osztály egy adattípus, melyet úgy képzelhetünk el, mint bizonyos objektumok sablonját, amely meghatározza a konkrét objektumok viselkedését és tulajdonságait. Az osztály egy absztrakt programozási eszköz. A hipermarket példában az Élelmiszer, a Műszaki_cikk és az Alkalmazott egy-egy osztály. A Termék is egy osztály, de ő absztrakt osztály (lásd később). Az OO nyelvek implementációi gyakran egy osztály együttesként jönnek létre. Az attribútumok tetszőleges bonyolultságú adatstruktúrát írhatnak le. A módszerek szolgálnak a viselkedés megadására. Ezek általában megfelelnek az eljárás orientált nyelvek alprogramjainak (metódusok). Az osztályok neveit mindig nagybetűvel kezdjük. PÉLDÁNYOSÍTÁS (INSTANTIATION) Egy objektum mindig egy osztály példányaként jön létre a példányosítás során. Az objektum ettől kezdve él és tudja mely osztály példányaként jött létre. Egy adott osztály minden példánya azonos adatstruktúrával és azonos viselkedésmóddal rendelkezik. Példányosításkor: - lefoglalódik egy memóriaterület az objektum számára - elhelyezésre kerülnek a példány szintű attribútumok (lásd később) - beállítódik a kezdőállapot (erre az OO nyelvek egy speciális módszert a konstruktort használják, lásd később.) Adott osztálytípussal több objektum példányt is létrehozhatunk. A példányok saját adatterülettel rendelkeznek, de a metódusokat közösen használják. Az aktuális példány címét a Self vagy this paraméter adja, mely minden objektum utolsó nem látható paramétere. Általában a nyelvekben a new operátorral lehet egy osztályból egy konkrét példányt elkészíteni. Az elkészített példányt más néven objektumnak, konkrét előfordulásnak vagy angolul instance nak nevezzük. A példányok neveit kisbetűvel írjuk. A hipermarket példában a kenyér1, kenyér2, sonka, tv1 és tv2 egy-egy példány. Az első három, példányosító osztálya a Kenyér osztály, az utolsó kettőnek a Műszaki_cikk osztály. TAGFÜGGVÉNY Egy adott osztály metódusait tagfüggvényeknek nevezzük. A tagfüggvények mindig az adott osztályból készített objektumon dolgoznak. A hipermarket példában az Élelmiszer osztálynak több tagfüggvénye is van pl. az áremel(int érték) tagfüggvénye arra való, hogy az adott élelmiszer árát egy adott mennyiséggel megnöveljük, de ezt a tagfüggvényt egy konkrét elemen az Élelmiszer osztály egy konkrét előfordulásánál (példányánál) fogjuk meghívni. Konkrét példa: Az Élelmiszer osztályból készítünk egy példányt a kenyér1-et. És a kenyér1-nek ha meg akarom növelni az árát 10Ft-al, akkor meghívom a megfelelő tagfüggvényét: kenyér1.áremel(10). Így a kenyér1 árát megnöveltem, a kenyér2 példány ára változatlan marad. Szoftverfejlesztési Technológiák OOP v1.0 (Készítette: Girhiny Róbert) oldal 4
5 PÉLDÁNYSZINTŰ ATTRIBÚTUM VS. OSZTÁLY SZINTŰ ATTRIBÚTUM Egy osztály attribútumai és módszerei lehetnek osztály és példány szintűek: - A példányszintű att-ok minden példányosításnál elhelyezésre kerülnek a memóriában, ezek értékei adják meg a példány állapotát. - Az osztály szintű att-ok az osztályhoz kötődnek, nem többszöröződnek A hipermarket példában ha meghívom az áremel() tagfüggvényt a kenyér1 példánynál, akkor csak a kenyér1 példány ára emelkedik, mivel az Élelmiszer osztály nettó_ár attribútuma egy példányszintű attribútum. Ezáltal minden példány saját árral dolgozhat. Ha osztály szintű lenne az Élelmiszer osztály nettó_ár attribútuma, akkor egy áremelésnél, az Élelmiszer osztály összes példányának (kenyér1, kenyér2, sonka) ára megemelkedne, mivel mindegyik példány közös memóriaterületen tárolná az árat. EGYSÉGBEZÁRÁS (ENCAPSULATION) Az OO szemlélet szerint az adatmodell és a funkcionális modell egymástól elválaszthatatlan, külön nem kezelhető. A valós világot egyetlen modellel kell leírni és ebben kell kezelni a statikus (adat) és a dinamikus (viselkedési) jellemzőket és elzárjuk őket a külvilág elől. Ez az egységbezárás elve. A hipermarket példában a két osztály (Élelmiszer, Műszaki_cikk) mind megvalósítják az egységbezárás elvét. Magukba zárják egy adott termékre jellemző adatokat (tulajdonságokat) és a rajtuk dolgozó metódusokat. A két dolgot együtt kell kezelni egymástól szét nem választható. Minden egyes osztály előfordulása (kenyér1, kenyér2, stb.) rendelkezik ezen adatokkal és egy közös névvel, az objektum nevével (kenyér1.leírás) hivatkozhatunk rájuk. OBJEKTUM (OBJECT) VAGY MÁS NÉVEN PÉLDÁNY (INSTANCE) Konkrét nyelvi eszköz. Egy objektum mindig egy osztály példányaként jön létre a példányosítás során. Egy adott osztály minden példánya azonos adatstruktúrával és azonos viselkedésmóddal rendelkezik. Minden objektumnak van címe, az a memóriaterület, ahol az adatstruktúra elemei elhelyezkednek. Az adott címen elhelyezkedő érték együttest az objektum állapotának hívjuk. A példányosítás folyamán az objektum kezdőállapotba kerül. Az OO szemléletben az objektumok egymással párhuzamosan, egymással kölcsönhatásban léteznek. A hipermarket példában a kenyér1, kenyér2, sonka, tv1, tv2 egy-egy objektum (példány). A kenyér1 állapotát az adja, hogy az attribútumainak aktuálisan milyen értékei vannak. Ezek az értékek időben változhatnak (pl.: megemeljük az árát) és akkor egy újabb állapotba kerül az objektum. AKTUÁLIS PÉLDÁNY Azt az objektumot, amelyen egy módszer éppen operál, aktuális példánynak hívjuk. Szoftverfejlesztési Technológiák OOP v1.0 (Készítette: Girhiny Róbert) oldal 5
6 ABSZTRAKT OSZTÁLY (ABSTRACT CLASS) Egy olyan eszköz, amellyel viselkedésmintákat adhatunk meg, amelyeket aztán valamely leszármazott osztály konkretizál. Egy absztrakt osztályban általában vannak absztrakt módszerek, ezeknek csak a specifikációja létezik, implementációjuk nem. Egy absztrakt osztályból származtatható absztrakt és konkrét osztály is. A konkrét osztály minden módszeréhez kötelező az implementáció. Egy osztály mindaddig absztrakt marad, amíg legalább egy módszere absztrakt. Az absztrakt osztályok nem példányosíthatók, csak örökölhetők. A hipermarket példában a Termék egy absztrakt osztály. Ez azt jelenti, hogy belőle nem készíthetünk példányokat. Belőle csak származtathatunk. Azért nem lehet példányosítani, mert a metódusaihoz nincs implementáció (kód rendelve). Nincs megírva pl a getbruttó() metódusának kódja, azt majd egy leszármazott osztálya pl az Élelmiszer osztály fogja meghatározni, mivel más és más lehet az egyes termékek után felszámolt adó mennyisége. Így megvalósítható az, hogy a kenyér1.getbruttó() metódusa x áfával, míg a tv1.getbruttó() metódusa y áfával számol. Más lesz a kódjuk, de ugyanúgy kell őket használni, ettől áttekinthetőbb és egységesebb lesz a kód. ÖRÖKLŐDÉS (INHERITENCE) Az öröklődés során egy már létező osztályhoz (a szuperosztályhoz, vagy ősosztályhoz) kapcsolódóan hozunk létre egy új osztályt, mely az alosztály. Az öröklés lényege, hogy az alosztály átveszi a szuperosztály minden (a bezárás által megengedett) attribútumát és módszerét. Ezen túlmenően új attribútumokat és módszereket definiálhat, az átvett eszközöket átnevezheti, az átvett neveket újradeklarálhatja a láthatósági viszonyokat és a módszereket újraimplementálhatja. Az öröklődés lehet egyszeres és többszörös. Egyszeres öröklődés esetén egy osztálynak pontosan egy, többszörös esetén több szuperosztálya lehet. Mindkét esetben akárhány alosztály létrehozható. Természetesen egy alosztály lehet egy másik osztály szuperosztálya. Így egy osztályhierarchia jön létre. Az osztályhierarchia egyszeres öröklődés esetén fa, többszörös esetén aciklikus gráf. Két kitüntetett elem a gyökér, amelynek nincs szuperosztálya, és a levél, amelynek nincs alosztálya. A hipermarket példában az Élelmiszer és Műszaki_cikk osztály a Termékek osztályból származik, így megöröklik a Termékek osztály összes attribútumait és metódusait. Továbbá saját attribútumokkal és metódusokkal is kiegészítik azokat pl: az Élelmiszer osztályban az örökölt attribútumok (nettó_ár, név, leírás) kiegészülnek újabb attribútumokkal a lejárati_idő-vel és a mennyiség-gel. Ugyanez a kiegészülés figyelhető meg a metódusok esetében is a Műszaki_cikk osztálynál. Itt a megörökölt metódusokat (termék, getnettó, getbruttó, áremel) kiegészítjük egy újjal a leakcióz() metódussal. POLIMORFIZMUS Egy alosztály az örökölt módszereket újraimplementálhatja, ezeket a módszereket polimorf módszereknek nevezzük. Így különböző osztályokban azonos módszerspecifikációhoz különböző implementáció tartozik. Ha meghívunk egy ilyen módszert, akkor a kötés mechanizmus adja meg, hogy melyik implementáció fog lefutni. Két ilyen kötési mechanizmus van, a statikus és a dinamikus. Szoftverfejlesztési Technológiák OOP v1.0 (Készítette: Girhiny Róbert) oldal 6
7 Statikus kötés esetén már fordításkor eldől a kérdés. Dinamikus kötés esetén a kérdés csak futás időben dől el, a megoldás a helyettesíthetőségen alapul. Annak az objektumnak a példányosító osztályában megadott implementáció fog lefutni, amelyik ténylegesen kezelésre kerül. A hipermarket példában ha a Termékek osztály nem lenne absztrakt osztály és a getbruttó() metódusához lenne implementáció rendelve, amely egy alap áfa értékkel számolna, akkor minden belőle származtatott osztály ezzel az áfával számolna, de ha valamely leszármazottban mégis szükséges lenne ezt az értéket/számítási módot megváltoztatni, akkor az örökölt implementációt felül lehet írni, annak érdekében hogy más adóval számoljon. Ekkor a getbruttó() metódust polimorf metódusnak nevezzük. KLIENS OSZTÁLY Az egymással előd-leszármazott viszonyban nem levő osztályokat kliens osztályoknak hívjuk (nincs öröklődési kapcsolat). A hipermarket példában az Alkalmazott osztály kliens osztály. Nincs szülő-leszármazott viszonyban más osztállyal. ÜZENETKÜLDÉS Az objektumok kommunikációja üzenetküldés formájában történik. Minden objektum, példányosító osztálya meghatározza azt az interfészt, amely definiálja, hogy más objektumok számára az ő példányainak mely attribútumai és metódusai látszanak (erre szolgál a bezárási eszközrendszer lásd később). Tehát egy objektum küld egy üzenetet egy másik objektumnak (ez általában egy számára látható metódus meghívásával és az üzenetet fogadó objektum megnevezésével történik), a másik pedig megválaszolja azt (a módszer visszatérési értéke, vagy változó paraméter segítségével). Az üzenet hatására lehet, hogy az objektum megváltoztatja az állapotát. A hipermarket példában tegyük fel, hogy egy alkalmazott megbeszéli a hipermarket vezetőségével, hogy ő hazavinne egy tv-t, de úgy hogy most a tv árának csak a felét fizetné ki, a másik felét pedig kéri, hogy a következő havi béréből vonják le. Ez az alkalmazott legyen az alkalmazott1 példány a kérdéses tv pedig a tv1. Ekkor a béréből való levonás a következőképpen alakul: alkalmazott1.setfizetés( alkalmazott1.getfizetés() tv1.getbruttó() / 2 ) Ebben az esetben a két objektum (alkalmazott1 és tv1) egymással kommunikál a metódusaik paramétereivel és visszatérési értékeikkel. TÚLTERHELÉS (OVERLOAD) Az OO nyelvek általában megengedik a metódusnevek túlterhelését. Ez annyit jelent, hogy egy osztályon belül azonos nevű és természetesen eltérő implementációjú módszereket tudunk létrehozni. Ekkor természetesen a hivatkozások feloldásához a specifikációknak különbözniük kell a paraméterek számában, vagy azok típusában. Szoftverfejlesztési Technológiák OOP v1.0 (Készítette: Girhiny Róbert) oldal 7
8 A hipermarket példában a Műszaki_cikk osztályban a leakcióz() metódusnév túl van terhelve. A két metódus neve megegyezik, de a paraméterlistája és implementációja nem. Az üres paraméterlistával rendelkező leakcióz() metódus mondjuk egy 10%-os akciót valósít meg és ennyivel csökkenti a termék árát. Az egy paraméterrel rendelkező leakcióz(float mérték) metódus pedig a paraméterben megadott mennyiséggel csökkenti a termék árát. Ez így egy kényelmi szolgáltatás. Ha nem adunk meg paramétert a függvényhívásnál, akkor az első eset fog megtörténni és egy átlagos akcióról lesz szó, ha viszont megadjuk a paramétert, akkor konkrétan annyival lesz csökkentve a termék ára. BEZÁRÁSI ESZKÖZRENDSZER Az absztrakt adattípus (osztály) az attribútumainak és metódusainak láthatóságát szabályozhatja, ezt valósítja meg a bezárási eszközrendszer. Általában 3 szintű bezárás van: - privát láthatóság: kívülről nem látható. Az eszközöket csak az adott osztály látja. Jelölése: A hipermarket példában az Élelmiszer osztályból készített példányok nettó_ár attribútumát csak maguk az Élelmiszer osztályból példányosított objektumok érhetik el. A műszaki_cikk osztályból készített objektumok nem látják az Élelmiszer osztály példányainak nettó_ár attribútumait, mivel azok privátak. Ahhoz az attribútumhoz csak a getnettó() metóduson keresztül férhetnek hozzá. - védett láthatóság: az osztály és a leszármazottjai férhetnek hozzá az eszközökhöz. Jelölése: # - publikus láthatóság: minden osztály láthatja az osztály eszközeit. A kliens osztályok is. Jelölése: + A hipermarket példában az előbb megnézett példában az üzenetküldésnél a tv1 megvásárlása az alábbi módszerrel nem lenne megvalósítható, ha a tv1.getbruttó() metódusa privát lenne, mert akkor azt kívülről nem lehetne elérni. alkalmazott1.setfizetés( alkalmazott1.getfizetés() tv1.getbruttó() / 2 ) KONSTRUKTOR (CONSTRUCTOR) Az osztályban szereplő speciális metódus, neve megegyezik az osztály nevével, általában túlterhelhető paraméterei azt a célt szolgálják, hogy segítségükkel kezdő értéket rendeljünk a példány szintű tagokhoz példányosításkor. A konstruktor, példányosításkor hívódik meg. A hipermarket példában az Élelmiszer osztály konstruktora az élelmiszer() metódus (tagfüggvény), a Műszaki_cikk osztály konstruktora pedig a műszaki_cikk() metódus. Amikor az Élelmiszer osztályból a példányosítás során létrehozzuk a sonka példányt, akkor meghívódik az élelmiszer() konstruktor és a sonka adattagjait beállítja egy kezdőállapotba. DESTRUKTOR (DESTRUCTOR) Ez is egy speciális metódus, mint a konstruktor. Amikor az objektum megszűnik, azelőtt hívódik meg. Feladata, hogy az esetlegesen lefoglalt memóriaterületeket felszabadítsuk. A hipermarket példában nincs ilyen metódus. Szoftverfejlesztési Technológiák OOP v1.0 (Készítette: Girhiny Róbert) oldal 8
9 KIVÉTELKEZELÉS (EXCEPTION HANDLING) Célja a futás közben fellépő hibák kezelése, ezeket a hibákat kivételnek (exception) nevezzük. Kivétel akkor lép fel, ha valamilyen hiba történik egy metódus futása során vagy a programozó saját maga kivált egy kivételt, ekkor egy kivétel objektum jön létre, amely információkat tartalmaz a kivétel fajtájáról és a program aktuális állapotáról. A kivétel kiváltása után a rendszer egy megfelelő kivételkezelőt keres, és annak adja át a vezérlést, a kivétel lekezelése után a vezérlés nem adódik vissza arra a helyre ahol kiváltódott a kivétel. Egy kivételkezelő akkor megfelelő típusú a kivétel kezeléséhez, ha a kezelő által kezelt kivétel típusa megegyezik a kiváltott kivétel típusával. A kivételkezelő blokkok egymásba ágyazhatók, ezért egyszerre több alkalmas kivételkezelő is lehet, ekkor arra tevődik a vezérlés, amelyik a legközelebb áll a kiváltott kivétel helyéhez. A hipermarket példában tegyük fel, hogy a termékeket egy felületen keresztül a felhasználó felveheti és kereshet közöttük. A termékeket tárolni kell. Amikor felvesz, egy új terméket akkor le kell menteni a merevlemezre az összes terméket, hogy későbbi használatra is megmaradjanak. De előfordulhat hogy mentés közben valami hiba lép fel, mondjuk elfogy a hely a merevlemezen, vagy nincs írási jog. Ekkor keletkezik egy kivétel, ami leírja a hiba okát. Ez lesz a kivételobjektum. Ezt kell a programban valahol elkapni és lekezelni. A lekezelés állhat abból, hogy a felhasználónak küldünk egy üzenetet hogy elfogyott a hely, mentsen máshová. Ezáltal a hiba nem okozza a program összeomlását, így nem lesz adatvesztés. EGYSÉGESSÉG Egyes tiszta OO nyelvek az egységesség elvét vallják. Ezen nyelvekben egyetlen programozási eszköz van, az objektum. Ezekben a nyelvekben tehát minden objektum, a módszerek és osztályok is. HIBRID NYELVEK A hibrid nyelvek valamilyen más paradigma (eljárásorientált, funkcionális, logikai, stb.) mentén épülnek fel, és az alap eszközrendszerük egészül ki OO eszközökkel. Ezen nyelvekben mindkét paradigma mentén lehet programozni. (C++, Object Pascal) TISZTA OO NYELVEK Csak OO paradigma mentén lehet programot írni bennük. (Java, Smalltalk, Eiffel) Szoftverfejlesztési Technológiák OOP v1.0 (Készítette: Girhiny Róbert) oldal 9
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.
Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban
Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban Tartalom OOP ismétlés Osztályok létrehozása Adattagok láthatóságai, elnevezési ajánlások Konstruktor, destruktor this pointer Statikus és dinamikus
Osztályok. 4. gyakorlat
Osztályok 4. gyakorlat Az osztály fogalma Az objektumok formai leírása, melyek azonos tulajdonsággal és operációkkal rendelkeznek. Osztályból objektum készítését példányosításnak nevezzük. Minden objektum
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
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.)
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:
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
Interfészek. PPT 2007/2008 tavasz.
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 2 Már megismert fogalmak áttekintése Objektumorientált
Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás
Számítástechnika II. BMEKOKAA153 5. Előadás Dr. Bécsi Tamás Kivételkezelés try Azon utasítások kerülnek ide, melyek hibát okozhatnak, kivételkezelést igényelnek catch( típus [név]) Adott kivételtípus esetén
Programozás módszertan p.1/46
Programozás módszertan Öröklődés Pere László (pipas@linux.pte.hu) 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
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
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
Objektum orientált programozás Bevezeté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
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
Programozás II. 2. gyakorlat Áttérés C-ről C++-ra
Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Tartalom Új kommentelési lehetőség Változók deklarációjának helye Alapértelmezett függvényparaméterek Névterek I/O műveletek egyszerűsödése Logikai adattípus,
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,
Bevezetés a Python programozási nyelvbe
Bevezetés a Python programozási nyelvbe 7. Gyakorlat osztályok, objektumok (utolsó módosítás 2018. aug. 28.) Szathmáry László Debreceni Egyetem Informatikai Kar 2018-2019, 1. félév OO programozás Pythonban
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:
Programozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 8. előadás Öröklődés - megnyitunk egy osztályt egy másik előtt zárt egységeket szeretünk készíteni (láthatósági kérdés:
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
ELTE SAP Excellence Center Oktatóanyag 1
Oktatóanyag 1 Oktatóanyag 2 Az oktatás folyamán használt példák a fent látható egyszerű modell implementációi. Oktatóanyag 3 A definíciós részben definiálja a fejlesztő az egyes attribútumokat, metódusokat,
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:
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
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
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
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
Objektumelvű programozás
Objektum, osztály Objektumelvű programozás Az elemzés együttműködő objektumok rendszereként fogalmazza meg a feladatot. Objektum-központú elemzés A tervezés a feladat tárgyköreit egy-egy objektum felelősségévé
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
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
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
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?
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? 3. Ismertesse a névtér fogalmát! 4. Mit értünk a "változó hatóköre"
Programozási nyelvek Java
statikus programszerkezet Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 2. előadás csomag könyvtárak könyvtárak forrásfájlok bájtkódok (.java) (.class) primitív osztály
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
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
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
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
Eötvös Loránd Tudományegyetem Informatikai Kar Objektumelvű alkalmazások fejlesztése 6. gyakorlat, polimorfizmus 2011.10.27. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Kódismétlődés
és az instanceof operátor
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
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
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
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
Java programozási nyelv 4. rész Osztályok II.
Java programozási nyelv 4. rész Osztályok II. 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/17 Tartalomjegyzék
Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:
Excel objektumok Az excelben az osztályokat úgynevezett class modulokként hozzuk létre. Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni: View-ba
Java és web programozás
Budapesti Műszaki Egyetem 2015. 02. 11. 2. Előadás Mese Néhány programozási módszer: Idők kezdetén való programozás Struktúrált Moduláris Funkcionális Objektum-orientált... Mese Néhány programozási módszer:
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
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
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
Programozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 9. előadás Interface - típust vezet be, de osztálypéldány nem készíthető belőle (statikus típust ad) - több osztály is
Objektum-orientált programozás
Objektum-orientált programozás Készítette: Nagy Zsolt, 2014 Modellezés A modellezés során nem a valós világ dolgaival foglakozunk, hanem egy kisebb, megfoghatóbb, megérthetőbb egyszerűsített példánnyal.
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
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
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.
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ö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
OOP: Java 8.Gy: Abstract osztályok, interfészek
OOP: Java 8.Gy: Abstract osztályok, interfészek 26/1 B ITv: MAN 2019.04.03 Abszrakt metódus és absztrakt osztály. Gyakran előfordul a tervezés során, hogy egy osztály szintjén tudjuk, hogy valamilyen metódus
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
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ő
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
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
Bevezetés a Programozásba II 5. előadás. Objektumorientált programozás és tervezés
Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 5. előadás Objektumorientált programozás és tervezés 2014.03.10. Giachetta Roberto groberto@inf.elte.hu
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.
Programozás BMEKOKAA146. Dr. Bécsi Tamás 7. előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 7. előadás AZ OOP alapelvei Egységbezárás(Encapsulation) Az adatokat es a hozzájuk tartozó eljárásokat egyetlen egységben (osztályban) kezeljük. Az osztály adatmezői
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
C++ programozási nyelv Konstruktorok-destruktorok
C++ programozási nyelv Konstruktorok-destruktorok 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/20 Tartalomjegyzék
Bevezetés a programozásba Előadás: Tagfüggvények, osztály, objektum
Bevezetés a programozásba 2 1. Előadás: Tagfüggvények, osztály, objektum Ismétlés int main() { string s; s; s= bla ; cout
Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015
Objektumorientált programozás Pál László Sapientia EMTE, Csíkszereda, 2014/2015 9. ELİADÁS Kivételkezelés (Exception handling) 2 Mi a kivétel (exception)? A kivétel, olyan hibás állapot vagy esemény, amely
Java programozási nyelv 9. rész Kivételkezelés
Java programozási nyelv 9. rész Kivételkezelés 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/24 Tartalomjegyzék
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.
Rekurzió. Dr. Iványi Péter
Rekurzió Dr. Iványi Péter 1 Függvényhívás void f3(int a3) { printf( %d,a3); } void f2(int a2) { f3(a2); a2 = (a2+1); } void f1() { int a1 = 1; int b1; b1 = f2(a1); } 2 Függvényhívás void f3(int a3) { printf(
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
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,
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
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)
Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás
Számítástechnika II. BMEKOKAA153 2. Előadás Dr. Bécsi Tamás Tömbök (Arrays) Definíció: típus[] név; (pld. int[] szamok; ) Inicializálás: int[] szamok = new int[4]; int[] szamok = 1,2,4,3,5}; int[] szamok
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
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
Pénzügyi algoritmusok
Pénzügyi algoritmusok A C++ programozás alapjai Sztringek Osztályok alapjai Sztringek Szöveges adatok kezelése Sztring Karakterlánc (string): Szöveges adat Karaktertömbként tárolva A szöveg végét a speciális
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)
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ó
Objektumorientált programozás C# nyelven
Objektumorientált programozás C# nyelven 3. rész Tulajdonságok Indexelők Kivételkezelés Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát
Globális operátor overloading
Programozás II. 9. gyakorlat Operátor overloading 2: Unáris operátorok, globálisan megvalósított operátorok, > operátorok Kivételkezelés, IO library Globális operátor overloading Előző alkalommal
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
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)
ELTE SAP EXCELLENCE CENTER Oktatóanyag. Sas László: ABAP Objects Objektumorientált ABAP
ABAP Objects Az oktatás célja az alapvető nyelvi elemek megismertetése. Az objektum-orientált programozás elméletének ismerete előfeltétel, éppen ezért ez nem kerül bemutatásra. Az oktatás folyamán használt
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.
Objektum orientált kiterjesztés A+ programozási nyelvhez
Szegedi Tudományegyetem Informatikai Tanszékcsoport Objektum orientált kiterjesztés A+ programozási nyelvhez Diplomamunka terve Készítette: Bátori Csaba programtervező matematikus hallgató Témavezető:
Programozási nyelvek (ADA)
Programozási nyelvek (ADA) Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 1. előadás Hasznos weboldal http://kto.web.elte.hu Program felépítése Programegységek (program unit) eljárások (procedure)
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
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
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
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
Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.
Eseménykezelés előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Függvénymutatókkal Származtatással Interfészekkel Egyéb
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ó
Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010
Programozási technikák Pál László Sapientia EMTE, Csíkszereda, 2009/2010 Előadás tematika 1. Pascal ismétlés, kiegészítések 2. Objektum orientált programozás (OOP) 3. Delphi környezet 4. Komponensek bemutatása
Szoftver-technológia II. Modulok és OOP. Irodalom
Modulok és OOP Irodalom Steven R. Schach: Object Oriented & Classical Software Engineering, McGRAW-HILL, 6th edition, 2005, chapter 7. 2 Modulok és objektumok Modulok Lexikálisan folytonos utasítás sorozatok,
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,
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
S0-02 Típusmodellek (Programozás elmélet)
S0-02 Típusmodellek (Programozás elmélet) Tartalom 1. Absztrakt adattípus 2. Adattípus specifikációja 3. Adattípus osztály 4. Paraméterátadás 5. Reprezentációs függvény 6. Öröklődés és polimorfizmus 7.
Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN
Objektum Orientált Programozás 11. Kivételkezelés 44/1B IT MAN B IT v: 2016.05.03 MAN Pici elmélet A Java kivételkezelésének célja a programfutás során keletkezett hibák kiszűrése és megfelelő kezelése.
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