ELTE SAP EXCELLENCE CENTER Oktatóanyag. Sas László: ABAP Objects Objektumorientált ABAP
|
|
- Gergely Kozma
- 6 évvel ezelőtt
- Látták:
Átírás
1 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 példák a fent látható egyszerű modell implementációi. Osztály Definíciós rész CLASS <osztálynév> DEFINITION. Itt definiálja a fejlesztő az CLASS <osztálynév> IMPLEMENTATION. attribútumokat, metódusokat (módszereket), Implementációs stb. rész A definíciós részben definiálja a fejlesztő az egyes attribútumokat, Itt implementálja metódusokat, a fejlesztő eseményeket, a konstansokat, típusokat és az implementált interfészeket. metódusok (módszerek) törzsét. Az implementációs részben csak a metódusok implementációja szerepelhet. A CLASS utasítás nem ágyazható be, azaz nem lehet osztályon belül osztályt definiálni. 1.
2 Általános osztály-definíció CLASS <osztálynév> DEFINITION. TYPES: CONSTANTS: CLASS- CLASS- PROTECTED SECTION. PRIVATE SECTION. Konstansokat (CONSTANTS) és típusokat (TYPES) a már megszokott módon definiáljuk. A DATA utasítással definiálhatók a példány attribútumok, míg a CLASS-DATA-val a statikus (vagy osztály) attribútumok. A METHODS utasítással adhatók meg az egyes metódusok (módszerek), míg CLASS-METHODS-zal a statikus metódusok. Az egyes elemek láthatóságát azzal adhatja meg a fejlesztő, hogy a megfelelő részbe (PUBLIC, PROTECTED vagy PRIVATE SECTION-be) helyezi el az adott elemet. PUBLIC: Mindenki számára látható. Az egyes elemhez közvetlen hozzáférése van a fejlesztőnek. PROTECTED: Csak az adott osztályban, illetve az alosztályaiban látható, érhető el. PRIVATE: Csak az osztályon belül látható. Kívülről illetve az alosztályokból nem érhető el. Általános osztály-implementáció CLASS <osztálynév> IMPLEMENTATION. METHOD class_constructor. METHOD constructor. METHOD <metódus_1>. METHOD <metódus_2>. Két speciális metódus létezhet egy osztálynál. Az egyik a class_constructor, ami egy statikus konstruktor. Egy program életében csak egyszer fut le, mégpedig még azelőtt, hogy az osztályhoz először hozzáférnének, azaz mielőtt még létrehozna a fejlesztő egy objektumot, vagy hozzáférne egy statikus attribútumhoz, vagy meghívna egy statikus 2.
3 metódust, vagy mielőtt beregisztrálná egy statikus metódusát eseményfigyelésre, vagy egy statikus eseményére beregisztrálna egy eseményfigyelőt. A másik a constructor, ami egy konstruktor. Minden osztálynak csak egy konstruktora lehet, de nem kötelező definiálni. Automatikusan meghívódik, amikor a fejlesztő kiad egy CREATE OBJECT utasítást (lásd később!). Attribútumok definiálása DATA <változó> TYPE <típus>. DATA <változó> TYPE <típus> VALUE <érték>. DATA <változó> TYPE <típus> READ-ONLY. DATA <változó> LIKE <változó>. DATA <változó> TYPE REF TO <osztály>. DATA <változó> TYPE REF TO <interfész>. Az osztályokban csak a TYPE-pal lehet megadni az attribútum (változó) típusát. LIKE-ot csak abban az esetben használhat a fejlesztő, ha egy az osztályon belüli változóra hivatkozik. A VALUE-val a fejlesztő megadhatja egy változó kezdőértékét. A READ-ONLY opció megadásával egy publikus attribútum elérhető az osztályon kívül, de módosítani csak az osztály metódusain belül lehet. Csak PUBLIC SECTION-ben használható. A TYPE REF TO-val egy referenciaváltozót lehet definiálni, ami egy osztály egy példányára, vagy annak egy alosztályának egy példányára, vagy egy a megadott interfészt implementáló osztály egy példányára mutat. Az attribútumok lehetséges típusai Elemi típusok C, I, P, STRING TYPE REF TO (hivatkozás) Data Dictionary-ben definiált típusok Fejlesztő által definiált típusok Metódusok definiálása <metódus> [ IMPORTING <be. vátozó1> TYPE <típus> <be. vátozón> TYPE <típus> EXPORTING <ki. változó1> TYPE <típus> <ki. változón> TYPE <típus> CHANGING <mód. változó1> TYPE <típus> <mód. változón> TYPE <típus> RETURNING VALUE(vissz. változó>) TYPE <típus> {RAISING EXCEPTIONS} <kivétel1> <kivételn> ]. Egy metódusnak 0 vagy több bemeneti paramétere (IMPORTING), 0 vagy több kimeneti paramétere (EXPORTING) és 0 vagy több módosítható paramétere (CHANGING) lehet. EXPORTING vagy CHANGING helyett egy úgynevezett függvény metódusnak van egy RETURNING része, amely egy formális paramétert definiál (<vissz. változó>) visszatérési értékként. A visszatérési értéket mindenképpen érték szerint (VALUE) kell átadni. 3.
4 Egy metódus 0 vagy több kivételt (RAISING vagy EXCEPTIONS) válthat ki. A RAISING-et osztály-alapú (CX_STATIC_CHECK vagy CX_DYNAMIC_CHECK alosztályai), míg az EXCEPTIONS-t a nem osztály-alapú kivételek deklarálásához használhatja a fejlesztő. Példa egy osztály-definicióra CLASS lcl_arucikk DEFINITION. CONSTANTS: c_afa_kulcs_20 TYPE p DECIMALS 2 VALUE '0.2'. constructor, leker_azonosito EXPORTING azonosito TYPE i, beallit_azonosito IMPORTING azonosito TYPE i, leker_nev EXPORTING nev TYPE string, beallit_nev IMPORTING nev TYPE string, leker_afa_kulcs EXPORTING afa_kulcs TYPE p, beallit_afa_kulcs IMPORTING afa_kulcs TYPE p, leker_netto_beszerzesi_ar EXPORTING netto_beszerzesi_ar TYPE p, beallit_netto_beszerzesi_ar IMPORTING netto_beszerzesi_ar TYPE p, leker_arres EXPORTING arres TYPE p, beallit_arres IMPORTING arres TYPE p. PRIVATE SECTION. azonosito TYPE i, nev TYPE string, afa_kulcs TYPE p DECIMALS 2, netto_beszerzesi_ar TYPE p DECIMALS 2, arres TYPE p DECIMALS 2. Az lcl_arucikk osztálynak van egy publikus konstansa, egy publikus konstruktora, további beállító és lekérdező metódusai a privát attribútumaira. Példa egy osztály-implementációra CLASS lcl_arucikk IMPLEMENTATION. METHOD constructor. me->azonosito = 0. me->nev = ''. me->afa_kulcs = c_afa_kulcs_20. me->netto_beszerzesi_ar = 0. me->arres = 10 / 100. METHOD leker_azonosito. azonosito = me->azonosito. METHOD beallit_azonosito. me->azonosito = azonosito. 4.
5 A fenti ábrán az lcl_arucikk osztály implementációja látható (a legtöbb attribútum lekérdező és beállító metódusa helyhiány miatt nem kerül megjelenítésre). Az első metódus maga a konstruktor. A második az azonosito attribútum lekérdező metódusa, míg a harmadik ugyanennek az attribútumnak a beállító/módosító metódusa. Amennyiben egy metóduson belül a fejlesztő el szeretné érni magát objektumot, aminek a metódusát éppen meghívták, akkor az impliciten elérhető me referenciaváltozót kell használnia. Például a metódus egy paraméterét pont úgy hívják, mint az attribútumot (vagy tagváltozót). A fenti példa több ilyen esetet is bemutat. Objektumok létrehozása Objektumokat a CREATE OBJECT utasítással lehet létrehozni. A fejlesztő csak referencia-változók segítségével tud objektumokat létrehozni és megcímezni. g_ref_arucikk TYPE REF TO lcl_arucikk. CREATE OBJECT g_ref_arucikk. A g_ref_arucikk egy referencia-változó. Egy mutató egy lcl_arucikk osztályú objektumra. Garbage Collector Szemétgyűjtő g_ref_arucikk1 TYPE REF TO lcl_arucikk, g_ref_arucikk2 TYPE REF TO lcl_arucikk. CREATE OBJECT g_ref_arucikk1. CREATE OBJECT g_ref_arucikk2. g_ref_arucikk1 = g_ref_arucikk2. Ha egy objektumra már nem mutat referencia, akkor azt a Garbage Collector eltávolítja a memóriából. A Garbage Collector (Szemétgyűjtő) egy rendszer rutin, amely automatikusan kitörli azokat az objektumokat a főmemóriából, amelyeket már nem lehet megcímezni, és felszabadítja azokat a memóriaterületeket, amelyeket elfoglaltak. Először a g_ref_arucikk1 egy könyvre, a g_ref_arucikk2 pedig egy CD-re mutat. A következő lépésben (az értékadás miatt) már mindkettő a CD-re mutat. Mivel a könyv objektumra már nem mutat semmilyen referencia, azért a rendszer eltávolítja azt a memóriából. A rendszer ellenőrzi a főmemóriában az összes független referenciát (ezeket nem egy osztályon belül definiálták). A rendszer megjelöli azokat az objektumokat, amelyekre ezek a referenciák mutatnak. A rendszer megjelöli azokat az objektumokat is, amelyekre egy osztály vagy interfész referencia attribútuma mutat. 5.
6 A nem-megjelölt objektumokat eltávolítja a főmemóriából. Objektumok használata A fejlesztő a CREATE OBJECT-tel hozza létre az új objektumokat. Tagváltozók elérése: <osztálynév>=><statikus_attribútum> <példány>-><példány_attribútum> Metódusok meghívása: CALL METHOD <osztálynév>=><statikus_metódus> CALL METHOD <példány>-><példány_metódus> Konstruktor A CREATE OBJECT utasítás ezt a metódust hívja meg. Egy osztálynál csak egy darab létezhet (ha nem definiálta a fejlesztő, akkor is létezik egy implicit konstruktor.) Csak PUBLIC lehet. Csak IMPORTING paraméterei lehetnek. Dobhat kivételeket, ilyenkor a példány nem jön létre. Funkcionális (függvény) metódusok Példa definíció: eladasi_ar RETURNING VALUE(ar) TYPE WAERS. Példa implementáció: METHOD eladasi_ar. ar = ( netto_beszerzesi_ar + netto_beszerzesi_ar * arres ) * ( 1 + afa_kulcs ). Funkcionális metódusoknak nevezzük azokat a metódusokat, amelyek rendelkeznek RETURNING paraméterrel. Értékszerinti átadás (VALUE) használata kötelező! Ezen kívül csak IMPORTING paraméterei lehetnek. Kivételeket dobhatnak. Típusnak nem adható meg generikus típus (pl. c, p, stb.). Funkcionális (függvény) metódusok hívása A visszatérési érték egy RECEIVING paraméterbe kerül: Pl.: CALL METHOD g_ref_arucikk->eladasi_ar RECEIVING ar = g_eladasi_ar. Közvetlenül többféle formátumban is meghívható: Aritmetikai és bit (COMPUTE) kifejezések Logikai kifejezések MOVE, CASE, LOOP Pl.: IF g_ref_arucikk->eladasi_ar( ) > 0. ENDIF. 6.
7 Öröklés, származtatás CLASS <alosztálynév> DEFINITION INHERITING FROM <ősosztálynév>. Ha a fejlesztő egy alosztályt szeretne létrehozni, akkor a DEFINITION részben meg kell adni az ősosztályt az INHERITING FROM nyelvi elem segítségével. Egy osztálynak csak egy ősosztálya lehet. Példa a származtatásra CLASS lcl_konyv DEFINITION INHERITING FROM lcl_arucikk. constructor, leker_szerzo EXPORTING szerzo TYPE string, beallit_szerzo IMPORTING szerzo TYPE string, leker_oldalak EXPORTING oldalak TYPE i, beallit_oldalak IMPORTING oldalak TYPE i, leker_nyelv EXPORTING nyelv TYPE string, beallit_nyelv IMPORTING nyelv TYPE string. PRIVATE SECTION. szerzo TYPE string, oldalak TYPE i, nyelv TYPE string. Az lcl_konyv osztály az lcl_arucikk osztályból származik. Újabb attribútumokkal (szerzo, oldalak, nyelv) és metódusokkal (konstruktor és lekérdező/beállító) bővül. Metódus újradefiniálása CLASS <osztálynév> DEFINITION INHERITING FROM <ősosztálynév>. <metódusnév> [FINAL] REDIFINITION. Ha a fejlesztő meg szeretné változtatni egy alosztályban egy metódus viselkedését, akkor a metódust újra kell definiálni az alosztályban. Példa a metódus újradefiniálására CLASS lcl_antikkonyv DEFINITION INHERITING FROM lcl_konyv. eladasi_ar REDEFINITION. CLASS lcl_antikkonyv IMPLEMENTATION. METHOD eladasi_ar. ar = super->eladasi_ar( ) * ( 1 - kedvezmeny ). 7.
8 Az lcl_antikkonyv osztályban a fejlesztő felüldefiniálja az eladasi_ar metódust. Ehhez felhasználja az újonnan bevezetett kedvezmeny attribútumot és az eladasi_ar ősosztálybeli implementációját. Absztrakt osztályok és metódusok CLASS <osztálynév> DEFINITION ABSTRACT. <metódusnév> ABSTRACT IMPORTING Absztrakt osztályokat nem lehet példányosítani, de lehet olyan referencia-változónk, ami az absztrakt osztályra mutat. Ténylegesen az alosztályok példányaira mutat. Ha egy osztálynak legalább egy absztrakt metódusa van, akkor az osztály is absztrakt. A fejlesztő az absztrakt metódusokat a DEFINITION részben definiálja, de nem implementálja. Ezt az alosztályokban teszi meg. Statikus metódusok és konstruktorok nem lehet absztraktak. Példa az absztrakt osztályra CLASS lcl_arucikk DEFINITION ABSTRACT. Az lcl_arucikk osztály egy absztrakt osztály. Valójában csak az alosztályainak (lcl_konyv, lcl_antikkonyv, lcl_ekonyv, stb) a példányai létezhetnek. CREATE OBJECT TYPE CREATE OBJECT <referencia_egy_absztrakt_osztályra> TYPE <nem_absztrakt_alosztály> A fejlesztő használhat olyan referenciát, ami egy absztrakt osztályra mutat. Ha létre kíván hozni egy új objektumot, és a hivatkozást egy ilyen referenciában tárolná el, akkor a CREATE OBJECT-et ki kell egészíteni a TYPE résszel. Példa a CREATE OBJECT TYPE -ra g_ref_arucikk TYPE REF TO lcl_arucikk. CREATE OBJECT g_ref_arucikk TYPE lcl_konyv. A példában a fejlesztő definiál egy g_ref_arucikk referencia-változót, ami egy lcl_arucikk-re mutat. Létrehoz egy lcl_konyv példányt. Az erre való hivatkozást eltárolja a g_ref_arucikk változóban. Végleges osztályok és metódusok CLASS <osztálynév> DEFINITION FINAL CLASS <osztálynév> DEFINITION <metódusnév> FINAL Végleges osztályoknak nem lehetnek alosztályai. Végleges metódust nem lehet újradefiniálni egy alosztályban. 8.
9 Interfészek Az interfészek leírják egy osztálynak a külvilággal való külső kapcsolódási pontjait. Ezek elsősorban metódusok. Interfész definiálása és implementálása INTERFACE <interfésznév>. ENDINTERFACE. CLASS <osztálynév> DEFINITION INTERFACES: <interfésznév>. CLASS <osztálynév> IMPLEMENTATION. METHOD <interfésznév>~<metódusnév>. Az interfész csak definíció tartozik, implementáció nem. Interfész definiálásakor a fejlesztő felsorolhat attribútumokat is a metódusok mellett. Ha a fejlesztő implementálni szeretne egy interfészt, akkor először az osztály DEFINITION részben fel kell sorolnia azt az INTERFACES részben. Utána el kell készítenie a metódusok implementációját az osztály IMPLEMENTATION részében. Az interfészben definiált attribútumokat és metódusokat <interfésznév>~<attribútum> vagy <interfésznév>~<metódus> formában érheti el a fejlesztő. Példa az interfészre INTERFACE lif_letoltheto. 9.
10 meretb TYPE i. meret EXPORTING meret TYPE i. ENDINTERFACE. A lif_letoltheto interfész definiálja a meret metódust. Minden olyan osztály, ami implementálja a lif_letoltheto-t, annak a példányainál a fejlesztő le tudja kérdezni a méretet, illetve ezeket árucikkeket a vásárlók le is tudják tölteni. Példa az interfész implementálására CLASS lcl_ekonyv DEFINITION INHERITING FROM lcl_konyv. INTERFACES: lif_letoltheto. constructor, leker_formatum EXPORTING formatum TYPE string, beallit_formatum IMPORTING formatum TYPE string. PRIVATE SECTION. formatum TYPE string. CLASS lcl_ekonyv IMPLEMENTATION. METHOD lif_letoltheto~meret. meret = me->lif_letoltheto~meretb. Példa az implementált metódus meghívására g_ref_ekonyv TYPE REF TO lcl_ekonyv, g_meret TYPE i. CALL METHOD g_ref_ekonyv->lif_letoltheto~meret IMPORTING meret = g_meret. Mint az látható, elég nehézkes az interfészekben definiált metódusok és attribútumok kezelése. ALIAS-ok Hogyan lehet meghívni egy metódust, amelyet egy interfészben definiáltak, de egy osztályban implementáltak? <interfésznév>~<metódus> ALIASES: <új_metódusnév> FOR <interfésznév>~<metódus>. Lehetőség van egy alias bevezetésére. A fejlesztőnek ezentúl nem kell kiírnia az interfész nevét programozás közben. Az ALIASES részt az osztály definíciójába kell elhelyezni. Példa az alias használatára CLASS lcl_ekonyv DEFINITION INHERITING FROM lcl_konyv. INTERFACES: 10.
11 lif_letoltheto. ALIASES: meret FOR lif_letoltheto~meret. Ebben a példában a fejlesztő definiált egy meret alias-t a lif_letoltheto~meret helyett. g_ref_ekonyv TYPE REF TO lcl_ekonyv, g_meret TYPE i. CALL METHOD g_ref_ekonyv->meret IMPORTING meret = g_meret. Bár a fejlesztő ezentúl könnyebben meghívhatja a meret metódust, a lif_letoltheto~meret továbbra is használható. Típuskényszerítés Szűkítés (narrowing cast): <ref_ősosztály> = <ref_alosztály> Pl.: g_ref_arucikk = g_ref_konyv. Váltás alosztályra (down cast): <ref_alosztály>?= <ref_ősosztály> Pl.: g_ref_konyv?= g_ref_arucikk. Az első esetben egy szimpla értékadás (=) bőven elegendő. A második eset már nem ennyire triviális, mert semmi sem garantálja, hogy egy árucikk egyben egy könyv is. Erre vezeték be a?= operátort. Eseménykezelés Események definiálása Események kiváltása Események figyelése és lekezelése Események definiálása CLASS <osztálynév> DEFINITION CLASS-EVENTS: EVENTS: <esemény> EXPORTING A fejlesztő az eseményeket a CLASS-EVENTS (osztályszintű) vagy az EVENTS (példányszintű) részben definiálja. Csak EXPORTING paraméterei lehetnek és érték szerint (VALUE) kell átadnia azokat a fejlesztőnek. Események kiváltása RAISE EVENT <esemény> EXPORTING. Eseményeket a RAISE EVENT utasítással lehet kiváltani. Események figyelése és lekezelése 11.
12 CLASS <eseményfigyelő_osztály> DEFINITION. <metódus> FOR EVENT <esemény> OF <eseményt_kiváltó_osztály> IMPORTING SENDER. SET HANDLER <ref_eseményfigyelő>-><metódus> FOR <ref_eseményt_kiváltó> *ACTIVATION +. Az eseményt figyelő osztályban a fejlesztőnek definiálnia kell egy metódust, ami azt adott osztály adott eseményére fog reagálni. Ezután be kell regisztrálni a SET HANDLER utasítással az eseményt figyelő osztály egy objektumát az eseményt kiváltó osztály egy objektumára. ACTIVATION rész: Ha az ACTIVATION után egy 'X' áll, akkor beregisztrálja az eseményfigyelést. Ilyenkor ez elhagyható. Ha a fejlesztő törölni szeretné a regisztrációt, akkor az ACTIVATION után egy ' ' (szóközt) kell írni. Példa az esemény definiálására CLASS lcl_letolto DEFINITION. letolt IMPORTING letoltheto TYPE REF TO lif_letoltheto. EVENTS: letoltve EXPORTING value(meret) TYPE i. A példában egy felhasználó egy letöltőt használ egy letölthető árucikk letöltésére. Ha a letöltő letöltötte az árucikket, akkor értesíti egy esemény segítségével a felhasználót. Az lcl_letolto osztály csak a letoltve eseményt váltja ki. Az esemény kiváltása a letolt metódusban történik. Példa az esemény kiváltására CLASS lcl_letolto IMPLEMENTATION. METHOD letolt. l_meret TYPE i. CALL METHOD letoltheto->meret IMPORTING meret = l_meret. RAISE EVENT letoltve EXPORTING meret = l_meret. A letolt metódusban a fejlesztő lekérdezi a letoltheto objektum méretét, és kiváltja a letoltve eseményt. A letöltött bájtok számát átadja paraméterként. Példa az események figyelésére és lekezelésére CLASS lcl_felhasznalo DEFINITION. kezel_letoltve FOR EVENT letoltve OF lcl_letolto IMPORTING meret sender. Az lcl_felhasznalo osztály egy példánya figyeli majd az lcl_letolto osztály egy példánya által kiváltott letoltve eseményeket. A kezel_letoltve metódus lezeli majd le az eseményt. 12.
13 CLASS lcl_felhasznalo IMPLEMENTATION. METHOD kezel_letoltve. WRITE: / 'Letöltve (bájt):', meret. Ebben az egyszerű példában a fejlesztő csak kiíratja a képernyő a letöltött bájtok számát. g_ref_letolto TYPE REF TO lcl_letolto, g_ref_felhasznalo TYPE REF TO lcl_felhasznalo, g_ref_letoltheto TYPE REF TO lif_letoltheto. START-OF-SELECTION. CREATE OBJECT g_ref_letoltheto TYPE lcl_ekonyv. CREATE OBJECT g_ref_letolto. CREATE OBJECT g_ref_felhasznalo. SET HANDLER g_ref_felhasznalo->kezel_letoltve FOR g_ref_letolto. CALL METHOD g_ref_letolto->letolt EXPORTING letoltheto = g_ref_letoltheto. Először a fejlesztő létrehoz egy letölthető objektumot. Jelen esetben ez az lcl_ekonyv osztály egy példánya. Utána létrehoz egy letöltőt, majd egy felhasználót. A felhasználót beregisztrálja a letöltő eseményeire. Végül a fejlesztő meghívja a letöltő letolt metódusát, azaz elindul a letöltés. Mi történik ez után? A letöltő letölti az elektronikus könyvet, és kiváltja a letoltve eseményt, amire felfigyel a felhasználó. A képernyőn erre megjelenik a letöltött adatok mérete bájtban. 13.
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,
Részletesebbené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
RészletesebbenJava 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észletesebbenOsztá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
RészletesebbenJAVA 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észletesebbenProgramozá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
RészletesebbenSzá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
RészletesebbenBevezeté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
RészletesebbenMá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észletesebbenOOP #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észletesebbenProgramozá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
RészletesebbenJava 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észletesebbenProgramozá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
RészletesebbenObjektumelvű 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é
RészletesebbenDr. 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észletesebbenOsztá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észletesebbenProgramozá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:
RészletesebbenOOP: 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
RészletesebbenInterfé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
RészletesebbenAbstract 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észletesebbenPelda ö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észletesebbenMiutá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
RészletesebbenSzé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észletesebbenJava 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
RészletesebbenJava V. Osztályszint. lyszintű ű tagok. Példányváltozó. Osztályváltozó. Általános Informatikai Tanszék Utolsó módosítás:
Java V. szint lyszintű ű tagok A final minősítő Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 05. Java V.: szintű tagok JAVA5 / 1 Példányváltozó Az eddig megismert adattagokból
RészletesebbenÖ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észletesebbenJava 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észletesebbenEsemé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
RészletesebbenC++ 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
RészletesebbenJava é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észletesebbenProgramozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 13. előadás Throwable Error Exception RuntimeException IOException Saját (általában) Nem ellenörzött kivételek (Unchecked
RészletesebbenJava 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észletesebbenJava 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észletesebbenStatikus 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észletesebbenC++ 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észletesebbenObjektumorientá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észletesebbenOsztá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észletesebbenSzá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
RészletesebbenOsztá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észletesebbenSmart Pointer koncepciója
Smart Pointer koncepciója ( Egyszerű Smart Pointer implementálása C++ nyelven ) Bevezetés Mik a smart pointer-ek 1? A válasz egyszerű; a smart pointer-ek olyan mutatók amik okosak. Mit is jelent ez pontosan?
RészletesebbenKivé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észletesebben1. 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"
RészletesebbenProgramozá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észletesebbenISA 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észletesebbenObjektum 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ő:
RészletesebbenProgramozá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észletesebbenOsztályok, objektumok
2. óra Osztályok, objektumok Osztályok felépítése Mezők, metódusok, módosítók JavaBeans Példányosítás Öröklés legradi.gabor@nik.bmf.hu szenasi.sandor@nik.bmf.hu Osztályok, objektumok Témakörök Osztályok
RészletesebbenProgramozá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,
RészletesebbenHelyes-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észletesebbenAz 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észletesebbenC++ referencia. Izsó Tamás február 17. A C++ nyelvben nagyon sok félreértés van a referenciával kapcsolatban. A Legyakoribb hibák:
C++ referencia Izsó Tamás 2017. február 17. 1. Bevezetés A C++ nyelvben nagyon sok félreértés van a referenciával kapcsolatban. A Legyakoribb hibák: Sokan összetévesztik a pointerrel. Keveset alkalmazzák
RészletesebbenProgramozás C++ -ban 2007/7
Programozás C++ -ban 2007/7 1. Másoló konstruktor Az egyik legnehezebben érthető fogalom C++ -ban a másoló konstruktor, vagy angolul "copy-constructor". Ez a konstruktor fontos szerepet játszik az argumentum
RészletesebbenProgramozá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észletesebbenC# 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észletesebbenProgramozá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
RészletesebbenBevezeté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
RészletesebbenJAVA PROGRAMOZÁS 3.ELŐADÁS
Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 3.ELŐADÁS 2014-2015 tavasz Polimorfizmus, absztrakt osztályok, interfészek 2 Példa - Hengerprogram 3 Példa - Hengerprogram 4 Példa - Hengerprogram
RészletesebbenKomponensek együttműködése web-alkalmazás környezetben. Jónás Richárd Debreceni Egyetem T-Soft Mérnökiroda KFT richard.jonas@tsoft.
Komponensek együttműködése web-alkalmazás környezetben Jónás Richárd Debreceni Egyetem T-Soft Mérnökiroda KFT Komponensek a gyakorlatban A szoftverkomponenseket fejlesztő csoportoknak szüksége van olyan
RészletesebbenVisual 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észletesebbenProgramozá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
RészletesebbenProgramozá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
RészletesebbenJava é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:
RészletesebbenProgramozá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észletesebbenProgramozás BMEKOKAA146. Dr. Bécsi Tamás 5. előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 5. előadás Tömbök átméretezése public static void Resize( ref T[] array, int newsize ) Példa: int[] a=new int[20]; Array.Resize(ref a, 22); 2016. 10. 19.
RészletesebbenIII. 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észletesebbenAlkalmazott 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észletesebbenProgramozás C++ -ban
Programozás C++ -ban 4. Bevezetés az osztályokba 4.1 Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több
RészletesebbenPé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
RészletesebbenBevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok
Bevezetés a programozásba II 5. Előadás: Másoló konstruktor, túlterhelés, operátorok Emlékeztető struct Vektor { int meret, *mut; Vektor(int meret); int szamlal(int mit); }; int Vektor::szamlal(int mit)
RészletesebbenOOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN
OOP: Java 11.Gy: Enumok, beágyazott osztályok 13/1 B ITv: MAN 2019.04.24 ArrayList Rugalmas tömb A tömbök korlátai Fix méret, nem lehet menet közben megnövelni Ha túl nagyra választjuk, fölösleges helyfoglalás
RészletesebbenOOP é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észletesebbenProgramozási technológia
Programozási technológia UML emlékeztető, Öröklődés Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. UML Osztályok jelölése A diagramokban az osztály jelölésénél a nevét, az attribútumok nevét és a műveletek
RészletesebbenC++ 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észletesebbenBevezeté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észletesebbenObjektumorientá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észletesebbenGlobá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
RészletesebbenGoogle C++ style guide
Április 3, 2013 Tartalomjegyzék Amiről szó lesz... Header állományok Hatókör Osztályok Elnevezések Előzmények Az útmutató célja A Google nyílt forrású projektjeinél túlnyomórészt C++: hatékony szolgáltatások,
RészletesebbenProgramozási nyelvek Java
-en objektumot tárolunk. Automatikus változók Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 3. előadás - végrehajtási vermen (execution stack) jönnek létre - alprogramok
RészletesebbenProgramozás C++ -ban
8. Dinamikus objektumok Programozás C++ -ban Ahhoz hogy általános prolémákat is meg tudjunk oldani, szükség van arra, hogy dinamikusan hozhassunk létre vagy szüntethessünk meg objektumokat. A C programozási
RészletesebbenOOP. 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észletesebbenMemóriagazdálkodás. Kódgenerálás. Kódoptimalizálás
Kódgenerálás Memóriagazdálkodás Kódgenerálás program prológus és epilógus értékadások fordítása kifejezések fordítása vezérlési szerkezetek fordítása Kódoptimalizálás L ATG E > TE' E' > + @StPushAX T @StPopBX
RészletesebbenJava 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észletesebben2011.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észletesebbenWeb-technológia PHP-vel
Web-technológia PHP-vel A PHP programnyelv 2, futtatókörnyezet beálĺıtások Erős Bence February 26, 2013 Erős Bence () Web-technológia PHP-vel February 26, 2013 1 / 19 Szuperglobális változók $ GET : request
RészletesebbenJava 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észletesebbenJava Programozás 3. Ea: Java osztályok. OOP alapalapok
Java Programozás 3. Ea: Java osztályok OOP alapalapok 62/1 B ITv: MAN 2018.02.05 Osztály fogalma A Java program osztályok halmaza Egy osztálydefiníció egyben egy teljes fordítási egység (de általában nem
RészletesebbenELTE SAP Excellence Center Oktatóanyag 1
Oktatóanyag 1 Eseményblokkok: végrehajtható programoknál (1. típus) az ABAPfutásidőrendszer egy meghatározott sorrendben átveszi az eseményblokkok meghívását, melyek egy listában jeleníthetők meg. Az eseményblokkok
RészletesebbenC# osztályok. Krizsán Zoltán
C# osztályok Krizsán Zoltán Fogalma Önálló hatáskőrrel rendelkező, absztrakt adattípus, amely több, különböző elemet tartalmazhat. Minden esetben a heap-en jön létre! A programozó hozza létre, de a GC
RészletesebbenObjective-C PPKE-ITK 2013. 02. 14.
Objective-C PPKE-ITK 2013. 02. 14. Objective-C bevezetés "Objective-C is a superset of C" Header:.h, osztálydeklarációk Implementáció:.m, osztályok implementációja Objective-C++:.mm Framework: Cocoa Szintaxis
RészletesebbenJava felhasználói felület
Java felhasználói felület Eseménykezelés Elek Tibor Eseményosztályok Az események előfordulásakor keletkezik egy megfelelő eseményobjektum. Pl. KeyPressed vagy KeyReleased (billentyű lenyomása vagy felengedése)
RészletesebbenBevezetés a Programozásba II 3. előadás. Biztonságos adattípusok megvalósítása
Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 3. előadás Biztonságos adattípusok megvalósítása 2014.02.24. Giachetta Roberto groberto@inf.elte.hu
RészletesebbenInterfé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észletesebben3. Osztályok II. Programozás II
3. Osztályok II. Programozás II Bevezető feladat Írj egy Nevsor osztályt, amely legfeljebb adott mennyiségű nevet képes eltárolni. A maximálisan tárolható nevek számát a konstruktorban adjuk meg. Az osztályt
RészletesebbenTömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása
Tömbök kezelése Példa: Vonalkód ellenőrzőjegyének kiszámítása A számokkal jellemzett adatok, pl. személyi szám, adószám, taj-szám, vonalkód, bankszámlaszám esetében az elírásból származó hibát ún. ellenőrző
RészletesebbenJava IX. telkezelés a Java-ban
Java IX. Kivétel telkezelés a Java-ban Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 11. 17. Java IX. Kivételkezelés JAVA9 / 1 A kivételkezel telkezelés célja Kivételes
RészletesebbenObjektumok inicializálása
Objektumok inicializálása Miskolci Egyetem Általános Informatikai Tanszék Objektumok inicializálása CPP4 / 1 Tartalom public adattagok inicializálása felsorolással konstruktor objektum tömbök osztály típusú
RészletesebbenSzoftvertechnológia alapjai Java előadások
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html A mai előadás tartalma: Miért pont Java?
RészletesebbenJava IX. telkezelés a Java-ban
Java IX. Kivétel telkezelés a Java-ban Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 11. 17. Java IX. Kivételkezelés JAVA9 / 1 A kivételkezel telkezelés célja Kivételes
RészletesebbenObjektumelvű 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
Részletesebben